コード例 #1
0
 static void ReInitialize()
 {
     SendToAll("erase|debug_erase");
     FightProcess.ReInitalizeAll();
 }
コード例 #2
0
        static void Listen()
        {
            try
            {
                while (true)
                {
                    Console.WriteLine("Ожидание подключения...");
                    TcpClient newplayer = listener.AcceptTcpClient();
                    if (new BinaryReader(newplayer.GetStream()).ReadString() != "notbrowser") // так как к серверу умудряется еще браузер подключаться...
                    {
                        newplayer.Close();
                        continue;
                    }

                    /*if (!opened)
                     * {
                     *  using (BinaryWriter bw = new BinaryWriter(newplayer.GetStream(), Encoding.UTF8, false))
                     *  {
                     *      bw.Write("Игра не открыта, подождите некоторое время...");
                     *  }
                     *  continue;
                     * }*/
                    else
                    {
                        CheckConnections();
                        switch (players.Count)
                        {
                        case 0:
                            CreateClient(newplayer);
                            break;

                        case 1:
                            CreateClient(newplayer);
                            opened           = false;
                            closeConnections = new Thread(CloseWhilePlaying);
                            closeConnections.Start();
                            bool revanche;
                            do
                            {
                                revanche = FightProcess.Start();
                                ReInitialize();
                            } while (revanche);
                            SendToAll("Второй игрок отключился. Ожидание нового оппонента...");
                            Thread.Sleep(2000);
                            opened = true;
                            new TcpClient().Connect(IPAddress.Loopback, port);
                            ReInitialize();
                            break;

                        default:
                            using (BinaryWriter bw = new BinaryWriter(newplayer.GetStream(), Encoding.UTF8, false))
                            {
                                bw.Write("Игра уже идет, подождите конца раунда.");
                            }
                            break;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.TargetSite);
                Console.WriteLine(e.HelpLink);
                Console.WriteLine("Listen");
                throw;
            }
        }