Beispiel #1
0
        public Move GetNextMove(Game game)
        {
            var  player = game.GetNextToMove();
            Move move;

            if (player.IsAIPlayer)
            {
                move = _moveGenerator.GenerateMove(game, player.GameSide);
            }
            else
            {
                while (true)
                {
                    move = _userMoveReader.FetchMove(player.GameSide);
                    if (_moveValidator.MoveIsValid(move, game.Board))
                    {
                        break;
                    }
                }
            }

            game.SwitchNextPlayer();
            return(move);
        }