Exemplo n.º 1
0
    def __init__(self) -> None:
        self.field = []
        self.current_color = Color.WHITE
        for i in range(self.FIELD_SIZE):
            self.field.append([None] * self.FIELD_SIZE)

        logging.debug(
            f'Создана шахматная доска с размерами: {self.FIELD_SIZE}x{self.FIELD_SIZE}'
        )

        # стандартная расстановка
        self.field[0] = [
            Rook(0, 0, Color.WHITE, self),
            Knight(0, 1, Color.WHITE, self),
            Bishop(0, 2, Color.WHITE, self),
            Queen(0, 3, Color.WHITE, self),
            King(0, 4, Color.WHITE, self),
            Bishop(0, 5, Color.WHITE, self),
            Knight(0, 6, Color.WHITE, self),
            Rook(0, 7, Color.WHITE, self),
        ]

        self.field[1] = [
            Pawn(1, 0, Color.WHITE, self),
            Pawn(1, 1, Color.WHITE, self),
            Pawn(1, 2, Color.WHITE, self),
            Pawn(1, 3, Color.WHITE, self),
            Pawn(1, 4, Color.WHITE, self),
            Pawn(1, 5, Color.WHITE, self),
            Pawn(1, 6, Color.WHITE, self),
            Pawn(1, 7, Color.WHITE, self),
        ]

        self.field[6] = [
            Pawn(6, 0, Color.BLACK, self),
            Pawn(6, 1, Color.BLACK, self),
            Pawn(6, 2, Color.BLACK, self),
            Pawn(6, 3, Color.BLACK, self),
            Pawn(6, 4, Color.BLACK, self),
            Pawn(6, 5, Color.BLACK, self),
            Pawn(6, 6, Color.BLACK, self),
            Pawn(6, 7, Color.BLACK, self),
        ]

        self.field[7] = [
            Rook(7, 0, Color.BLACK, self),
            Knight(7, 1, Color.BLACK, self),
            Bishop(7, 2, Color.BLACK, self),
            Queen(7, 3, Color.BLACK, self),
            King(7, 4, Color.BLACK, self),
            Bishop(7, 5, Color.BLACK, self),
            Knight(7, 6, Color.BLACK, self),
            Rook(7, 7, Color.BLACK, self),
        ]

        logging.debug('Расстановка фигур завершена')
Exemplo n.º 2
0
    def __init__(self) -> None:
        self.field = []
        self.current_color = Color.WHITE
        for i in range(self.FIELD_SIZE):
            self.field.append([None] * self.FIELD_SIZE)

        # стандартная расстановка
        self.field[0] = [
            Rook(0, 0, Color.WHITE, self),
            Knight(0, 1, Color.WHITE, self),
            Bishop(0, 2, Color.WHITE, self),
            Queen(0, 3, Color.WHITE, self),
            King(0, 4, Color.WHITE, self),
            Bishop(0, 5, Color.WHITE, self),
            Knight(0, 6, Color.WHITE, self),
            Rook(0, 7, Color.WHITE, self),
        ]

        self.field[1] = [
            Pawn(1, 0, Color.WHITE, self),
            Pawn(1, 1, Color.WHITE, self),
            Pawn(1, 2, Color.WHITE, self),
            Pawn(1, 3, Color.WHITE, self),
            Pawn(1, 4, Color.WHITE, self),
            Pawn(1, 5, Color.WHITE, self),
            Pawn(1, 6, Color.WHITE, self),
            Pawn(1, 7, Color.WHITE, self),
        ]

        self.field[6] = [
            Pawn(6, 0, Color.BLACK, self),
            Pawn(6, 1, Color.BLACK, self),
            Pawn(6, 2, Color.BLACK, self),
            Pawn(6, 3, Color.BLACK, self),
            Pawn(6, 4, Color.BLACK, self),
            Pawn(6, 5, Color.BLACK, self),
            Pawn(6, 6, Color.BLACK, self),
            Pawn(6, 7, Color.BLACK, self),
        ]

        self.field[7] = [
            Rook(7, 0, Color.BLACK, self),
            Knight(7, 1, Color.BLACK, self),
            Bishop(7, 2, Color.BLACK, self),
            Queen(7, 3, Color.BLACK, self),
            King(7, 4, Color.BLACK, self),
            Bishop(7, 5, Color.BLACK, self),
            Knight(7, 6, Color.BLACK, self),
            Rook(7, 7, Color.BLACK, self),
        ]
Exemplo n.º 3
0
class TestKnightBounds(unittest.TestCase):
    def setUp(self):
        self.board = Board()
        self.knight = Knight(self.board, 'a', '4', 'white')

    def test_possible_moves(self):
        result = self.knight.get_possible_moves()
        self.assertEqual(len(result), 4)
        self.assertIn((1,5), self.knight.__moves__)
        self.assertIn((1,1), self.knight.__moves__)
        self.assertIn((2,4), self.knight.__moves__)
        self.assertIn((2,2), self.knight.__moves__)
Exemplo n.º 4
0
class TestKnightBase(unittest.TestCase):
    def setUp(self):
        self.board = Board()
        self.knight = Knight(self.board, 'd', '4', 'white')

    def test_base_moves(self):
        result = self.knight.get_possible_moves()
        self.assertEqual(len(result), 8)
        self.assertIn((2,5), self.knight.__moves__)
        self.assertIn((4,5), self.knight.__moves__)
        self.assertIn((2,1), self.knight.__moves__)
        self.assertIn((4,1), self.knight.__moves__)
        self.assertIn((1,2), self.knight.__moves__)
        self.assertIn((1,4), self.knight.__moves__)
        self.assertIn((5,2), self.knight.__moves__)
        self.assertIn((5,4), self.knight.__moves__)
Exemplo n.º 5
0
 def create(self):
     for i in range(8):
         for j in range(8):
             if i == 0 or i == 1:
                 color = 'black'
             if i == 6 or i == 7:
                 color = 'white'
             if i == 0 or i == 7:
                 if j == 0 or j == 7:
                     self.figures.append(
                         Rook(j, i, color,
                              figures_images[color + 'Rook']['Image'],
                              self.board))
                 if j == 1 or j == 6:
                     self.figures.append(
                         Knight(j, i, color,
                                figures_images[color + 'Knight']['Image'],
                                self.board))
                 if j == 2 or j == 5:
                     self.figures.append(
                         Bishop(j, i, color,
                                figures_images[color + 'Bishop']['Image'],
                                self.board))
                 if j == 3:
                     self.figures.append(
                         King(j, i, color,
                              figures_images[color + 'King']['Image'],
                              self.board))
                 if j == 4:
                     self.figures.append(
                         Queen(j, i, color,
                               figures_images[color + 'Queen']['Image'],
                               self.board))
             if i == 1 or i == 6:
                 self.figures.append(
                     Pawn(j, i, color,
                          figures_images[color + 'Pawn']['Image'],
                          self.board))
Exemplo n.º 6
0
def test_legal_move():
    # this is a dummy test for the dummy implementation
    cb = Chessboard(Game.WHITE_PIECES, Game.BLACK_PIECES)
    p = Knight(0, 0, "W", "WN1")
    assert p.is_legal_move([1, 1], cb.status()) == True
Exemplo n.º 7
0
 def setUp(self):
     self.board = Board()
     self.knight = Knight(self.board, 'a', '4', 'white')
Exemplo n.º 8
0
 def setUp(self):
     self.board = Board()
     self.knight = Knight(self.board, 'd', '4', 'white')
     self.block_knight = Knight(self.board, 'b', '3', 'black')