def test_become_king(self, empty_board):
        # Dark piece
        empty_board.board_list[1][6] = LightPiece(
        )  # auxiliary piece, single type piece cannot move
        empty_board.board_list[5][5] = DarkPiece()
        empty_board.move(Constants().DARK, 5, 5, 6, 6)
        assert empty_board.board_list[6][6].king is False
        empty_board.move(Constants().DARK, 6, 6, 7, 7)
        assert empty_board.board_list[7][7].king is True

        # Light piece
        empty_board.board_list[1][6] = DarkPiece(
        )  # auxiliary piece, single type piece cannot move
        empty_board.board_list[2][2] = LightPiece()
        empty_board.move(Constants().LIGHT, 2, 2, 1, 1)
        assert empty_board.board_list[1][1].king is False
        empty_board.move(Constants().LIGHT, 1, 1, 0, 0)
        assert empty_board.board_list[0][0].king is True
    def test_jump_dark_forward(self, empty_board, dark):
        empty_board.board_list[3][3] = DarkPiece()
        light = LightPiece()
        empty_board.board_list[4][4] = light
        obs, rew, done, info = empty_board.move(dark, 3, 3, 5, 5)

        assert info["removed"] == ((4, 4), light)
        assert info["moved"] == ((3, 3), (5, 5))
        assert empty_board.board_list[4][4] is None
        assert done
    def test_jump_light_forward(self, empty_board, light):
        dark = DarkPiece()
        empty_board.board_list[3][3] = dark
        empty_board.board_list[4][4] = LightPiece()
        obs, rew, done, info = empty_board.move(light, 4, 4, 2, 2)

        assert info["removed"] == ((3, 3), dark)
        assert info["moved"] == ((4, 4), (2, 2))
        assert empty_board.board_list[3][3] is None
        assert done
    def test_no_possible_jump(self, empty_board, light):
        """
        X - -        X - -
        - - -   ->   - O -
        O - 0        - - 0
        """
        empty_board.board_list[0][0] = DarkPiece()

        empty_board.board_list[2][2] = LightPiece()
        empty_board.board_list[2][0] = LightPiece()

        obs, rew, done, info = empty_board.move(light, 2, 0, 1, 1)
        assert done
Beispiel #5
0
    def test_move(self, empty_board):
        # Dark piece
        empty_board.board_list[5][5] = DarkPiece()
        with pytest.raises(ValueError):
            empty_board.move(Constants().DARK, 5, 5, 4, 4)
        # move any direction
        empty_board.board_list[5][5].make_king()
        empty_board.move(Constants().DARK, 5, 5, 4, 4)
        empty_board.move(Constants().DARK, 4, 4, 5, 5)

        # Light Piece
        empty_board.board_list[5][5] = LightPiece()
        with pytest.raises(ValueError):
            empty_board.move(Constants().LIGHT, 5, 5, 6, 6)
        # move any direction
        empty_board.board_list[5][5].make_king()
        empty_board.move(Constants().LIGHT, 5, 5, 6, 6)
        empty_board.move(Constants().LIGHT, 6, 6, 5, 5)
    def test_move(self, empty_board):
        # Dark piece
        init_board = empty_board
        empty_board.board_list[5][5] = DarkPiece()
        empty_board.move(Constants().DARK, 5, 5, 4, 4)
        assert init_board == empty_board

        # move any direction
        empty_board.board_list[5][5].make_king()
        empty_board.move(Constants().DARK, 5, 5, 4, 4)
        empty_board.move(Constants().DARK, 4, 4, 5, 5)

        # Light Piece
        init_board = empty_board
        empty_board.board_list[5][5] = LightPiece()
        empty_board.move(Constants().LIGHT, 5, 5, 6, 6)
        assert init_board == empty_board
        # move any direction
        empty_board.board_list[5][5].make_king()
        empty_board.move(Constants().LIGHT, 5, 5, 6, 6)
        empty_board.move(Constants().LIGHT, 6, 6, 5, 5)
 def test_no_piece(self, empty_board, dark):
     empty_board.board_list[0][0] = DarkPiece()
     obs, rew, done, info = empty_board.move(dark, 0, 0, 1, 1)
     assert done