Пример #1
0
        public void RenderBoardAtStartOfGame()
        {
            var board  = Substitute.For <IBoard>();
            var render = Substitute.For <IBoardRender>();
            var shogi  = new BitboardShogiGame(board, render);

            shogi.Start();

            render.Received(1).Refresh(Arg.Any <BitboardState>());
        }
Пример #2
0
        public void EnsureBoardIsResetAtStartOfGame()
        {
            var board  = Substitute.For <IBoard>();
            var render = Substitute.For <IBoardRender>();
            var shogi  = new BitboardShogiGame(board, render);

            shogi.Start();

            board.Received(1).Reset();
        }
Пример #3
0
        public void IdentifyACheckMateState()
        {
            var board  = new Bitboard(new FullBitboardState(BitboardPredefinedStates.InitialWhitePositions, BitboardPredefinedStates.InitialBlackPositions));
            var render = Substitute.For <IBoardRender>();
            var shogi  = new BitboardShogiGame(board, render);

            shogi.Start();

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

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

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