public static Pos ReadInput(Config config, Board gameBoard, char currentPlayer) { if (IsAiPlayerTurn(config, currentPlayer)) { var move = AiWithScoreTable.GetAiMove(gameBoard, currentPlayer); Console.WriteLine(move); return(move); } else { var input = ReadInput(); var move = ParseMove(input); while (!ReversiRules.IsValidMove(gameBoard, move, currentPlayer)) { Console.WriteLine("You can't place a piece there!\n"); Console.Write(currentPlayer == Constants.Black ? "BLACK, make your move: " : "WHITE, make your move: "); input = ReadInput(); move = ParseMove(input); } return(move); } }
public Board CalculateHints(BoardHints hints, char player) { switch (hints) { case BoardHints.Hints: return(HintPlayer(GameBoard, player)); case BoardHints.NumericHints: return(AiWithScoreTable.GetNumericHints(GameBoard, player)); default: var hintBoard = new Board(GameBoard); hintBoard.ClearBoard(' '); return(hintBoard); } }