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 }); }
public TicTacToeTeam GetOppositeTeam(TicTacToeTeam team) { switch (team) { case TicTacToeTeam.Circle: return(TicTacToeTeam.Cross); case TicTacToeTeam.Cross: return(TicTacToeTeam.Circle); default: return(TicTacToeTeam.None); } }
public AiOpponent(TicTacToeTeam team) { AiTeam = team; }