Beispiel #1
0
        void AskPlayerForNextMove(IBoardPlayer currentPlayer, IBoardPlayer nextPlayer)
        {
            if (currentPlayer != null && nextPlayer != null)
            {
                var nextMove = currentPlayer.AskForNextMove();
                var result   = Move(currentPlayer.Player, nextMove);
                Render();

                if (result != BoardResult.ValidOperation)
                {
                    _boardRender.InvalidOperation(result);
                    AskPlayerForNextMove(currentPlayer, nextPlayer);
                }
                else
                {
                    AskPlayerForNextMove(nextPlayer, currentPlayer);
                }
            }
        }