public void CheckTestTheory(rsp player1, rsp player2, int exceptedResult)
        {
            AdditionalWinnerChecker winnerChecker = new AdditionalWinnerChecker();
            var result = winnerChecker.Play(player1, player2);

            Assert.Equal(exceptedResult, result);
        }
示例#2
0
        public void Game()
        {
            Console.WriteLine("Game cycle is online");
            while (true)
            {
                if (clients.Count < 2) // если не достаточно игроков для игры
                {
                    foreach (var x in clients.Keys)
                    {
                        SendMessage(x, "waiting");
                    }
                }
                else if (players.Keys.Count < 2) // смотрим, все ли выбрали свои предметы
                {
                    foreach (var x in clients.Keys)
                    {
                        if (!players.ContainsKey(x))
                        {
                            SendMessage(x, "choice?");
                        }
                    }
                }
                else
                {
                    AdditionalWinnerChecker w = new AdditionalWinnerChecker();
                    var         answers       = players.Values.ToArray(); // предметы
                    TcpClient[] playerses     = players.Keys.ToArray();   // клиенты
                    int         winner        = w.Play(answers[0], answers[1]) - 1;
                    foreach (var x in clients.Keys)
                    {
                        SendMessage(x, $"winner:{clients[playerses[winner]]}:{answers[winner]}");
                    }

                    players = new Dictionary <TcpClient, rsp>(); //сброс предметов
                }

                Thread.Sleep(1000); // обработчик засыпает на секунду
            }
        }