示例#1
0
        public void ResetBoardOnStart()
        {
            var shogiGame = new ShogiGame(_boardRenderMock, null, null, _boardMock);

            shogiGame.Start();

            _boardMock.Received(1).Reset();
        }
示例#2
0
        public void RenderBoardOnStart()
        {
            var shogiGame = new ShogiGame(_boardRenderMock, null, null, _boardMock);

            shogiGame.Start();

            _boardRenderMock.ReceivedWithAnyArgs(1).Refresh(Arg.Any <IBoardState>());
        }
示例#3
0
        public static void Main(string[] args)
        {
            var board       = new Board();
            var blackPlayer = HumanPlayerConsoleAdapter.CreateFor(PlayerType.Black);
            var whitePlayer = NoviceComputerPlayer.CreateFor(PlayerType.White, board);

            var shogiGame = new ShogiGame(new BoardConsoleRender(), blackPlayer, whitePlayer, board);

            shogiGame.Start();
        }
示例#4
0
        public void RenderBoardAtStartOfGame()
        {
            var board  = Substitute.For <IBoard>();
            var render = Substitute.For <IBoardRender>();
            var shogi  = new ShogiGame(render, null, null, board);

            shogi.Start();

            render.Received(1).Refresh(Arg.Any <IBoardState>());
        }
示例#5
0
        public void EnsureBoardIsResetAtStartOfGame()
        {
            var board  = Substitute.For <IBoard>();
            var render = Substitute.For <IBoardRender>();
            var shogi  = new ShogiGame(render, null, null, board);

            shogi.Start();

            board.Received(1).Reset();
        }
示例#6
0
文件: Program.cs 项目: pjbgf/shogi
        public static void Main(string[] args)
        {
            var blackPlayer = ConsoleHumanPlayer.CreateFor(Player.Black);
            var whitePlayer = ConsoleHumanPlayer.CreateFor(Player.White);

            var shogiGame = new ShogiGame(
                new BoardConsoleRender(),
                blackPlayer,
                whitePlayer,
                new Board());

            shogiGame.Start();
        }
示例#7
0
        public void IdentifyACheckMateState()
        {
            var board  = new Bitboard(new FullBitboardState(BitboardPredefinedStates.InitialWhitePositions, BitboardPredefinedStates.InitialBlackPositions));
            var render = Substitute.For <IBoardRender>();
            var shogi  = new ShogiGame(render, null, null, board);

            shogi.Start();

            board.Move(Player.Black, "7g7f");
            board.Move(Player.White, "6a7b");
            board.Move(Player.Black, "8h3c");
            board.Move(Player.White, "4a4b");
            board.Move(Player.Black, "3c4b");
            board.Move(Player.White, "5a6a");

            var result = board.Move(Player.Black, "G*5b");

            Assert.Equal(BoardResult.CheckMate, result);
        }