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('Расстановка фигур завершена')
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), ]
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__)
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__)
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))
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
def setUp(self): self.board = Board() self.knight = Knight(self.board, 'a', '4', 'white')
def setUp(self): self.board = Board() self.knight = Knight(self.board, 'd', '4', 'white') self.block_knight = Knight(self.board, 'b', '3', 'black')