Exemplo n.º 1
0
        public void EndWorkflow()
        {
            EndStep newStep = new EndStep();

            WorkflowBuilder.AddStep(newStep);
            Outcome.NextStep = newStep.Id;
        }
Exemplo n.º 2
0
        public void FindStepWithPlayer_Traveler_Step()
        {
            int           peopleLimit   = 3;
            bool          decision      = true;
            EndStep       endStep       = new EndStep();
            Mountain      mountain      = new Mountain(peopleLimit, endStep);
            Ocean         ocean         = new Ocean(peopleLimit, mountain);
            ThermalWaters thermalWaters = new ThermalWaters(peopleLimit, ocean);
            Farm          farm          = new Farm(peopleLimit, thermalWaters);
            FirstStep     firstStep     = new FirstStep(farm);
            List <Step>   steps         = new List <Step>();

            steps.Add(farm);
            steps.Add(thermalWaters);
            steps.Add(ocean);
            steps.Add(mountain);
            Board           board     = new Board(steps, firstStep, endStep);
            List <Traveler> travelers = new List <Traveler>();

            travelers.Add(new Traveler());
            travelers.Add(new Traveler());
            GameData data     = new GameData(travelers, board);
            Movement movement = new Movement(data);

            movement.MakeMove(travelers[0], decision);
            Assert.AreEqual(movement.FindStepWithPlayer(travelers[0]), firstStep);
            Assert.AreEqual(movement.FindStepWithPlayer(travelers[1]), null);
        }
Exemplo n.º 3
0
        public void GameDataConstructor_TravelerAndBoard_TravelerNullException()
        {
            void Excecute()
            {
                int           peopleLimit   = 3;
                EndStep       endStep       = new EndStep();
                Mountain      mountain      = new Mountain(peopleLimit, endStep);
                Ocean         ocean         = new Ocean(peopleLimit, mountain);
                ThermalWaters thermalWaters = new ThermalWaters(peopleLimit, ocean);
                Farm          farm          = new Farm(peopleLimit, thermalWaters);
                FirstStep     firstStep     = new FirstStep(farm);
                List <Step>   steps         = new List <Step>();

                steps.Add(farm);
                steps.Add(thermalWaters);
                steps.Add(ocean);
                steps.Add(mountain);
                Board           board     = new Board(steps, firstStep, endStep);
                List <Traveler> travelers = new List <Traveler>();

                travelers.Add(null);
                travelers.Add(null);
                GameData data = new GameData(travelers, board);
            }

            Assert.Throws(typeof(TravelerNullException), Excecute);
        }
Exemplo n.º 4
0
        public void PlayerArrival_TravelerAndDecision_UpdatePlayersIn()
        {
            bool     decision = true;
            EndStep  endStep  = new EndStep();
            Traveler traveler = new Traveler();

            endStep.PlayerArrival(traveler, decision);
            Assert.AreEqual(endStep.PlayersIn[0], traveler);
        }
Exemplo n.º 5
0
 public Steps(ICoreConfigSection coreConfigSection, SDBuildStrings sdBuildStrings, IConfigController configController, BuildMessenger buildMessenger, IExporter[] allExporters = null)
 {
     PreBuildStep       = new PreBuildStep(coreConfigSection, allExporters, buildMessenger, sdBuildStrings);
     LoadStep           = new LoadStep(coreConfigSection, sdBuildStrings, buildMessenger);
     ParseStep          = new ParseStep(sdBuildStrings, coreConfigSection, buildMessenger);
     StructureParseStep = new StructureParseStep(sdBuildStrings, buildMessenger);
     ExportStep         = new ExportStep(coreConfigSection, sdBuildStrings, buildMessenger, allExporters);
     EndStep            = new EndStep(configController, coreConfigSection);
 }
Exemplo n.º 6
0
        public void EndSteps()
        {
            EndStep end = new EndStep();

            end.Command = PacketsToServer.EndStep;
            string mes = JsonConvert.SerializeObject(end) + "$";

            Send(mes);
        }
Exemplo n.º 7
0
        public IStepBuilder <TData, TStepBody> EndWorkflow()
        {
            EndStep newStep = new EndStep();

            WorkflowBuilder.AddStep(newStep);
            Step.Outcomes.Add(new ValueOutcome {
                NextStep = newStep.Id
            });
            return(this);
        }
        public override bool Equals(object obj)
        {
            if (obj == null || !(obj is NodeTravellingSalesmanEdge))
            {
                return(false);
            }
            NodeTravellingSalesmanEdge rhs = obj as NodeTravellingSalesmanEdge;

            return(StartStep.Equals(rhs.StartStep) &&
                   EndStep.Equals(rhs.EndStep) &&
                   Score.Equals(rhs.Score));
        }
Exemplo n.º 9
0
        public void MakeMove_TravelerAndDecision_NotLetTravelerIntoACompleteStation()
        {
            int           peopleLimit   = 1;
            bool          decision      = true;
            EndStep       endStep       = new EndStep();
            Mountain      mountain      = new Mountain(peopleLimit, endStep);
            Ocean         ocean         = new Ocean(peopleLimit, mountain);
            ThermalWaters thermalWaters = new ThermalWaters(peopleLimit, ocean);
            Farm          farm          = new Farm(peopleLimit, thermalWaters);
            FirstStep     firstStep     = new FirstStep(farm);
            List <Step>   steps         = new List <Step>();

            steps.Add(farm);
            steps.Add(thermalWaters);
            steps.Add(ocean);
            steps.Add(mountain);
            Board           board     = new Board(steps, firstStep, endStep);
            List <Traveler> travelers = new List <Traveler>();

            travelers.Add(new Traveler());
            travelers.Add(new Traveler());
            GameData data     = new GameData(travelers, board);
            Movement movement = new Movement(data);

            movement.MakeMove(travelers[0], decision);
            movement.MakeMove(travelers[0], decision);

            movement.MakeMove(travelers[1], decision);
            movement.MakeMove(travelers[1], decision);

            Assert.AreEqual(steps[0].PlayersIn[0], travelers[0]);
            Assert.AreEqual(steps[0].PlayersIn[1], travelers[1]);

            Assert.AreEqual(steps[0].PlayersIn[0].Coins, 3);


            Assert.AreEqual(steps[0].PlayersIn[1].Coins, 0);
        }
Exemplo n.º 10
0
 internal static void OnEndStep() => EndStep?.Invoke();
        //#region IComparable<IEdge<int>> Members

        //public int CompareTo(IEdge<int> other)
        //{
        //    if (other == null)
        //        return -1;
        //    if (Score.CompareTo(other.Score) != 0)
        //        return Score.CompareTo(other.Score);
        //    if (StartStep.CompareTo(other.StartStep) != 0)
        //        return Score.CompareTo(other.StartStep);
        //    return Score.CompareTo(other.EndStep);
        //}

        //#endregion

        #region IPheremoneKey Members

        public IEnumerable <IPheremoneKey> Available(IAntColonyContext context)
        {
            return(EndStep.Available(context));
        }
Exemplo n.º 12
0
        public void ReciveMessages(string message)
        {
            // try
            // {
            switch (JsonConvert.DeserializeObject <RegPacket>(message).Command)
            {
            case PacketsToServer.RegPacket:
                RegPacket reg  = JsonConvert.DeserializeObject <RegPacket>(message);
                bool      flag = ServerMain.Check(reg.Name);

                if (flag)
                {
                    ResultRegPacket result = new ResultRegPacket();
                    result.Command         = PacketsToServer.ResultRegPacket;
                    result.StatusOfRegistr = Status.success;
                    clientinf = new Player(reg.Name);
                    ServerMain.gameclients.Add(clientinf);
                    Thread.Sleep(50);
                    lock (ServerMain.FirstList)
                    {
                        ServerMain.FirstList.Add(reg.Name, this.client);
                    }
                    result.ListAllClients = makelist();
                    strpacket             = JsonConvert.SerializeObject(result) + "$";
                    Console.WriteLine("Имя клиента " + reg.Name);
                }
                else
                {
                    ResultRegPacketFailed result = new ResultRegPacketFailed();
                    result.Command         = PacketsToServer.ResultRegPacket;
                    result.StatusOfRegistr = Status.fail;
                    strpacket = JsonConvert.SerializeObject(result) + "$";
                    Console.WriteLine("Клиент с таким именем уже существует");
                }

                Send(strpacket);
                ListOfAllClients list = new ListOfAllClients();
                list.Command        = PacketsToServer.ListOfAllClients;
                list.ListAllClients = makelist();
                strpacket           = JsonConvert.SerializeObject(list) + "$";
                SendToAllPlayersInTheGameWithOutME(strpacket);
                break;

            case PacketsToServer.AskGamePacket:

                AskGamePacket     stwp   = JsonConvert.DeserializeObject <AskGamePacket>(message);
                StartWindowPacket stgapc = new StartWindowPacket();    //отправляю список клиента при входе в игру
                stgapc.Command        = PacketsToServer.StartWindowPacket;
                stgapc.ListAllClients = makelist();
                strpacket             = JsonConvert.SerializeObject(stgapc) + "$";
                Send(strpacket);

                break;

            case PacketsToServer.WaitGamePacket:
                WaitGamePacket waitfg = JsonConvert.DeserializeObject <WaitGamePacket>(message);
                foreach (Player b in ServerMain.gameclients)
                {
                    if (b.Name == waitfg.login)
                    {
                        b.Status = StatusGamer.lookforgame;
                    }
                }
                sendingList();
                break;

            case PacketsToServer.StopLookingforGamePacket:
                StopLookingForGame stop = JsonConvert.DeserializeObject <StopLookingForGame>(message);
                foreach (Player b in ServerMain.gameclients)
                {
                    if (b.Name == stop.Name)
                    {
                        b.Status = StatusGamer.sleeping;
                    }
                }
                sendingList();
                break;

            case PacketsToServer.EXIT:
                Exit ex = JsonConvert.DeserializeObject <Exit>(message);
                Console.WriteLine("Клиент покинул игру");
                foreach (Player b in ServerMain.gameclients)
                {
                    if (b.Name == ex.login)
                    {
                        ServerMain.gameclients.Remove(b);
                        //  ServerMain.FirstList.Remove(b.Name);
                    }
                }
                ListOfAllClients list1 = new ListOfAllClients();
                list1.Command        = PacketsToServer.ListOfAllClients;
                list1.ListAllClients = makelist();
                strpacket            = JsonConvert.SerializeObject(list1) + "$";
                SendToAllPlayersInTheGameWithOutME(strpacket);
                foreach (KeyValuePair <string, TcpClient> b in ServerMain.FirstList)
                {
                    if (b.Key == ex.login)
                    {
                        b.Value.Close();
                        ServerMain.FirstList.Remove(b.Key);
                        return;
                    }
                }

                break;

            case PacketsToServer.ChooseEnemyPacket:
                ChooseEnemyPacket ch = JsonConvert.DeserializeObject <ChooseEnemyPacket>(message);
                this.clientinf.Status = StatusGamer.lookforgame;

                foreach (Player client in ServerMain.gameclients)
                {
                    if (client.Name == ch.EnemyLogin && client.Status == StatusGamer.lookforgame &&
                        CheckMe(clientinf) == StatusGamer.lookforgame)
                    {
                        AskGamePacket packet = new AskGamePacket();
                        packet.Command = PacketsToServer.AskGamePacket;
                        packet.login   = ch.MyLogin;
                        strpacket      = JsonConvert.SerializeObject(packet) + "$";

                        SendToEnemy(strpacket, ch.EnemyLogin);

                        return;
                    }
                    else if (client.Name != clientinf.Name)
                    {
                        ResultChooseEnemyPacketFailed pack2 = new ResultChooseEnemyPacketFailed();
                        pack2.Command            = PacketsToServer.ResultChooseEnemyPacketFailed;
                        pack2.StatusOfChoseEnemy = Status.fail;
                        strpacket = JsonConvert.SerializeObject(pack2) + "$";
                        Send(strpacket);
                    }
                }
                break;

            case PacketsToServer.AnsGamePacket:
                AnsGamePacket answer = JsonConvert.DeserializeObject <AnsGamePacket>(message);
                if (answer.state == true)
                {
                    ResultChooseEnemyPacketSuccess resultchen = new ResultChooseEnemyPacketSuccess();
                    resultchen.Command            = PacketsToServer.ResultChooseEnemyPacketSuccess;
                    resultchen.StatusOfChoseEnemy = Status.success;
                    resultchen.enemylogin         = answer.Enemylogin; //логин врага
                    resultchen.MyLogin            = answer.Mylogin;    //логин врага
                    var obj = JsonConvert.DeserializeObject <List <CardHeroes> >(File.ReadAllText("1.json"));
                    resultchen.listAllCards = obj;
                    strpacket = JsonConvert.SerializeObject(resultchen) + "$";
                    Send(strpacket);
                    resultchen.enemylogin = answer.Mylogin;
                    resultchen.MyLogin    = answer.Enemylogin;
                    strpacket             = JsonConvert.SerializeObject(resultchen) + "$";
                    SendToEnemy(strpacket, answer.Enemylogin);
                    Rooms room = new Rooms();
                    room.Player1 = clientinf;
                    room.Player2 = WhoIsHe(answer.Enemylogin);
                    ServerMain.rooms.Add(room);
                }
                else
                {
                    ResultChooseEnemyPacketFailed pack2 = new ResultChooseEnemyPacketFailed();
                    pack2.Command            = PacketsToServer.ResultChooseEnemyPacketFailed;
                    pack2.StatusOfChoseEnemy = Status.fail;
                    strpacket = JsonConvert.SerializeObject(pack2) + "$";
                    Send(strpacket);
                }

                break;

            case PacketsToServer.ChoosenCardListPacket:
                lock (_locker)
                {
                    ChoosenCardListPacket kol         = JsonConvert.DeserializeObject <ChoosenCardListPacket>(message);
                    ResultChooseCardList  packetcheck = new ResultChooseCardList();
                    ISErrorOfEnemy        err         = new ISErrorOfEnemy();
                    err.Command         = PacketsToServer.ISErrorOfEnemy;
                    packetcheck.Command = PacketsToServer.ResultChooseCardList;
                    if (checkkoloda(kol.Koloda))
                    {
                        err.ISErr = false;
                        packetcheck.ResultOfChooseCard = Status.success;
                        clientinf.Deck = kol.Koloda;
                    }
                    else
                    {
                        err.ISErr = true;
                        packetcheck.ResultOfChooseCard = Status.fail;
                    }
                    strpacket         = JsonConvert.SerializeObject(packetcheck) + "$";
                    clientinf.NumRoom = InWhichRoom(clientinf);
                    Send(strpacket);
                    strpacket = JsonConvert.SerializeObject(err) + "$";
                    ////int i=InWhichRoom()
                    ////if(ServerMain.rooms[].Player1.Name!=kol.Me)
                    ////SendToEnemy(strpacket, rooms.Player1.Name);
                    if (ServerMain.rooms[clientinf.NumRoom].Player2.Name != clientinf.Name)
                    {
                        SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player2.Name);
                    }
                    else
                    {
                        SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player1.Name);
                    }
                }
                break;

            case PacketsToServer.StartGamePacket:
                lock (_locker)
                {
                    StartGamePacket stgapacket = JsonConvert.DeserializeObject <StartGamePacket>(message);
                    foreach (Player pl in ServerMain.gameclients)
                    {
                        if (stgapacket.Me == pl.Name || stgapacket.Enemy == pl.Name)
                        {
                            pl.Status = StatusGamer.playing;
                        }
                    }
                    sendingList();
                    foreach (Player pl in ServerMain.gameclients)
                    {
                        if (stgapacket.Enemy == pl.Name)
                        {
                            StartGame(pl);
                        }
                    }
                }
                break;

            case PacketsToServer.StepPacket:
                StepPacket stpac = JsonConvert.DeserializeObject <StepPacket>(message);
                GameStep(stpac.EnemyCard, stpac.MyCard, WhoIsHe(stpac.Enemy));

                break;

            case PacketsToServer.EndStep:
                EndStep         step = JsonConvert.DeserializeObject <EndStep>(message);
                SendDataToUsers a;
                if (ServerMain.rooms[clientinf.NumRoom].Player1 == clientinf)
                {
                    controller.IsmHoda(clientinf, ServerMain.rooms[clientinf.NumRoom].Player2);
                    a          = DataToSendPrepare(ServerMain.rooms[clientinf.NumRoom].Player2);
                    a.AmIFirst = clientinf.IsHod;
                    strpacket  = JsonConvert.SerializeObject(a) + "$";
                    Send(strpacket);
                    a         = DataToSendPrepareEnemy(ServerMain.rooms[clientinf.NumRoom].Player2);
                    strpacket = JsonConvert.SerializeObject(a) + "$";
                    SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player2.Name);
                }
                else
                {
                    controller.IsmHoda(clientinf, ServerMain.rooms[clientinf.NumRoom].Player1);
                    a          = DataToSendPrepare(ServerMain.rooms[clientinf.NumRoom].Player1);
                    a.AmIFirst = clientinf.IsHod;
                    strpacket  = JsonConvert.SerializeObject(a) + "$";
                    Send(strpacket);
                    a         = DataToSendPrepareEnemy(ServerMain.rooms[clientinf.NumRoom].Player1);
                    strpacket = JsonConvert.SerializeObject(a) + "$";
                    SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player1.Name);
                }
                break;

            case PacketsToServer.PacketArenaCardNow:
                PacketArenaCardNow parcadnow = JsonConvert.DeserializeObject <PacketArenaCardNow>(message);
                if (parcadnow.MyCard.Price <= this.clientinf.Mana)
                {
                    controller.ToArena(this.clientinf, parcadnow.MyCard);
                    CardOnABoard card = new CardOnABoard();
                    card.Command           = PacketsToServer.CardOnABoard;
                    card.login             = clientinf.Name;
                    parcadnow.MyCard.Index = parcadnow.IndeXMyCard;
                    card.card = parcadnow.MyCard;
                    strpacket = JsonConvert.SerializeObject(card) + "$";
                    if (clientinf.Name != ServerMain.rooms[clientinf.NumRoom].Player2.Name)
                    {
                        SendToAllPlayersInTheRoom(strpacket, ServerMain.rooms[clientinf.NumRoom].Player2.Name);
                    }
                    else
                    {
                        SendToAllPlayersInTheRoom(strpacket, ServerMain.rooms[clientinf.NumRoom].Player1.Name);
                    }
                }
                else
                {
                    Error error = new Error();
                    error.Command     = PacketsToServer.Error;
                    error.ErrorToUser = MessagesToClientErrors.NotEnouthMana;
                }
                break;

            case PacketsToServer.EnemyLeftGamePacket:
                EnemyLeftGamePacket left    = JsonConvert.DeserializeObject <EnemyLeftGamePacket>(message);
                EnemyLeftGamePacket newleft = new EnemyLeftGamePacket();
                newleft.Command = PacketsToServer.EnemyLeftGamePacket;
                newleft.login   = left.login;
                strpacket       = JsonConvert.SerializeObject(newleft) + "$";
                if (ServerMain.rooms[clientinf.NumRoom].Player1 == clientinf)
                {
                    SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player2.Name);
                    foreach (Player player in ServerMain.gameclients)
                    {
                        if (player == clientinf || player == ServerMain.rooms[clientinf.NumRoom].Player2)
                        {
                            player.Status = StatusGamer.sleeping; sendingList();
                        }
                    }
                }
                else
                {
                    SendToEnemy(strpacket, ServerMain.rooms[clientinf.NumRoom].Player1.Name);
                    foreach (Player player in ServerMain.gameclients)
                    {
                        if (player == clientinf || player == ServerMain.rooms[clientinf.NumRoom].Player2)
                        {
                            player.Status = StatusGamer.sleeping; sendingList();
                        }
                    }
                }

                ServerMain.gameclients.Remove(WhoIsHe(left.login));
                ServerMain.FirstList.Remove(left.login);
                ServerMain.rooms.Remove(ServerMain.rooms[clientinf.NumRoom]);

                break;
            }
        }