Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }