Exemple #1
0
 public static void ExecutarMovimento(GameModel gameModel, int x, int y, string player)
 {
     gameModel.Tabuleiro[x, y] = player.ToUpper();
     ChangePlayer(gameModel);
     gameModel.StatusGame = StatusGameEnum.EmAndamento;
 }
Exemple #2
0
        public static void VerificarStatusPartida(GameModel gameModel)
        {
            //Verifica combinação nas linhas
            for (int row = 0; row < 3; row++)
            {
                if (string.IsNullOrEmpty(gameModel.Tabuleiro[row, 0]) ||
                    string.IsNullOrEmpty(gameModel.Tabuleiro[row, 1]) ||
                    string.IsNullOrEmpty(gameModel.Tabuleiro[row, 2]))
                {
                    continue;
                }

                if (gameModel.Tabuleiro[row, 0].Equals(gameModel.Tabuleiro[row, 1]) &&
                    gameModel.Tabuleiro[row, 1].Equals(gameModel.Tabuleiro[row, 2]))
                {
                    gameModel.StatusGame = StatusGameEnum.TemVencedor;
                    gameModel.Winner     = gameModel.Tabuleiro[row, 0].ToString();
                    return;
                }
            }


            //Verifica combinação nas colunas
            for (int col = 0; col < 3; col++)
            {
                if (string.IsNullOrEmpty(gameModel.Tabuleiro[0, col]) ||
                    string.IsNullOrEmpty(gameModel.Tabuleiro[1, col]) ||
                    string.IsNullOrEmpty(gameModel.Tabuleiro[2, col]))
                {
                    continue;
                }

                if (gameModel.Tabuleiro[0, col].Equals(gameModel.Tabuleiro[1, col]) &&
                    gameModel.Tabuleiro[1, col].Equals(gameModel.Tabuleiro[2, col]))
                {
                    gameModel.StatusGame = StatusGameEnum.TemVencedor;
                    gameModel.Winner     = gameModel.Tabuleiro[0, col].ToString();
                    return;
                }
            }


            //Verifica combinação nas diagonais
            if (!string.IsNullOrEmpty(gameModel.Tabuleiro[0, 0]) &&
                !string.IsNullOrEmpty(gameModel.Tabuleiro[1, 1]) &&
                !string.IsNullOrEmpty(gameModel.Tabuleiro[2, 2]) &&
                gameModel.Tabuleiro[0, 0].Equals(gameModel.Tabuleiro[1, 1]) &&
                gameModel.Tabuleiro[1, 1].Equals(gameModel.Tabuleiro[2, 2]))
            {
                gameModel.StatusGame = StatusGameEnum.TemVencedor;
                gameModel.Winner     = gameModel.Tabuleiro[0, 0].ToString();
                return;
            }

            if (!string.IsNullOrEmpty(gameModel.Tabuleiro[0, 2]) &&
                !string.IsNullOrEmpty(gameModel.Tabuleiro[1, 1]) &&
                !string.IsNullOrEmpty(gameModel.Tabuleiro[2, 0]) &&
                gameModel.Tabuleiro[0, 2].Equals(gameModel.Tabuleiro[1, 1]) &&
                gameModel.Tabuleiro[1, 1].Equals(gameModel.Tabuleiro[2, 0]))
            {
                gameModel.StatusGame = StatusGameEnum.TemVencedor;
                gameModel.Winner     = gameModel.Tabuleiro[0, 2].ToString();
                return;
            }



            //Verifica se possui jogadas pendentes
            for (int x = 0; x < 3; x++)
            {
                for (int y = 0; y < 3; y++)
                {
                    if (string.IsNullOrEmpty(gameModel.Tabuleiro[x, y]))
                    {
                        gameModel.StatusGame = StatusGameEnum.EmAndamento;
                        gameModel.Winner     = string.Empty;
                        return;
                    }
                }
            }


            gameModel.StatusGame = StatusGameEnum.Empate;
            gameModel.Winner     = "Draw";
        }
Exemple #3
0
 private static void ChangePlayer(GameModel gameModel)
 {
     gameModel.PlayerTurn = gameModel.PlayerTurn.Equals("X") ? "O" : "X";
 }