Exemple #1
0
        private PossibleMove EvaluateMove(Grid grid, Square move)
        {
            TicTacToeTeam resultingTeam = TicTacToeTeam.None;

            // Checks for whether AI has won.
            move.Status = (SquareStatus)AiTeam;
            if (grid.GetWinner() == AiTeam)
            {
                resultingTeam = AiTeam;
            }
            move.Status = SquareStatus.Empty;

            // Checks for whether player has won.
            move.Status = AiTeam == TicTacToeTeam.Circle
                ? (SquareStatus)TicTacToeTeam.Cross
                : (SquareStatus)TicTacToeTeam.Circle;
            if (grid.GetWinner() == (TicTacToeTeam)move.Status)
            {
                resultingTeam = (TicTacToeTeam)move.Status;
            }
            move.Status = SquareStatus.Empty;

            return(new PossibleMove
            {
                Square = move,
                ResultingTeam = resultingTeam
            });
        }
Exemple #2
0
        public TicTacToeTeam GetOppositeTeam(TicTacToeTeam team)
        {
            switch (team)
            {
            case TicTacToeTeam.Circle:
                return(TicTacToeTeam.Cross);

            case TicTacToeTeam.Cross:
                return(TicTacToeTeam.Circle);

            default:
                return(TicTacToeTeam.None);
            }
        }
Exemple #3
0
 public AiOpponent(TicTacToeTeam team)
 {
     AiTeam = team;
 }