//========GAME MANAGER====== public void GameLogicUpdate() { switch (gameStatus) { case GameStatus.waitPlayers: if (playersInRoom.Count >= 2) { gameStatus = GameStatus.start; } break; case GameStatus.start: if (playersInRoom.Count >= 2) { deck.Shuffle(); stage = Stage.flop; ServerSend.StartNewGame(); foreach (KeyValuePair <int, Client> kvp in playersInRoom) { Card card1 = deck.GetNextCard(); Card card2 = deck.GetNextCard(); int playerId = kvp.Value.id; kvp.Value.playerStatus = PlayerStatus.inGame; //Sent client Cards, status ServerSend.PlayerInGame(playerId); ServerSend.Preflop(playerId, card1, card2); Console.WriteLine("InGame: " + kvp.Value.username); Console.WriteLine("Preflop: " + card1.ToString() + "-- " + card2.ToString()); } gameStatus = GameStatus.rates; idActivePlayer = playersInRoom[0].id; ServerSend.ActivPlayer(idActivePlayer); //Sent chat to all - Game start } else { gameStatus = GameStatus.waitPlayers; } break; case GameStatus.distribution: if (playersInRoom.Count < 2) { gameStatus = GameStatus.waitPlayers; } // Console.WriteLine("Distribution!"); //Send each by 2 card //Sent first action to rate // gameStatus = GameStatus.rates; break; case GameStatus.rates: if (playersInRoom.Count < 2) { gameStatus = GameStatus.waitPlayers; } string userWin = ""; int playerCount = 0; foreach (KeyValuePair <int, Client> kvp in playersInRoom) { if (kvp.Value.playerStatus == PlayerStatus.inGame) { playerCount += 1; userWin = kvp.Value.username; } } if (playerCount < 2) { ServerSend.WinResult(userWin.ToString()); gameStatus = GameStatus.start; } // отправить первому в списке чтоб делал ставку //first rates // send all rates // if all rate - gameStatus = GameStatus.rates; break; //Send next action to rate break; default: Console.WriteLine("неизвестный статус"); break; } }