예제 #1
0
파일: ShogiGame.cs 프로젝트: pjbgf/shogi
 public ShogiGame(IBoardRender boardRender, IBoardPlayer blackPlayer, IBoardPlayer whitePlayer, IBoard board)
 {
     _boardRender = boardRender;
     _blackPlayer = blackPlayer;
     _whitePlayer = whitePlayer;
     _board       = board;
 }
예제 #2
0
파일: ShogiGame.cs 프로젝트: pjbgf/shogi
        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);
                }
            }
        }