Пример #1
0
class TestPawn(unittest.TestCase):
    def setUp(self):
        self.coords = Coordinates('d', 4)
        self.pawn = Pawn(self.coords, 'white')

    def test_pawn_initialization(self):
        self.assertEqual(self.pawn.coordinates, self.coords)

    def test_pawn_position(self):
        self.assertTupleEqual((3, 3), self.pawn.position)

    def test_pawn_resource_name(self):
        self.assertEqual('white_pawn.png', self.pawn.resource_name)

    def test_pawn_can_move_ahead(self):
        new_coord = Coordinates('d', 5)
        self.assertTrue(self.pawn.can_move_to(new_coord))

    def test_pawn_cant_move_behind(self):
        new_coord = Coordinates('d', 3)
        self.assertFalse(self.pawn.can_move_to(new_coord))

    def test_cant_move_more_than_one_tile(self):
        new_coord = Coordinates('d', 8)
        self.assertFalse(self.pawn.can_move_to(new_coord))

    def test_pawn_cant_move_at_the_sides(self):
        new_coord = Coordinates('c', 4)
        self.assertFalse(self.pawn.can_move_to(new_coord))
        new_coord = Coordinates('e', 4)
        self.assertFalse(self.pawn.can_move_to(new_coord))
Пример #2
0
    def _place_pieces(self):
        self.tiles[0][0].piece = Rook(Color.BLACK)
        self.tiles[0][1].piece = Knight(Color.BLACK)
        self.tiles[0][2].piece = Bishop(Color.BLACK)
        self.tiles[0][3].piece = Queen(Color.BLACK)
        self.tiles[0][4].piece = King(Color.BLACK)
        self.tiles[0][5].piece = Bishop(Color.BLACK)
        self.tiles[0][6].piece = Knight(Color.BLACK)
        self.tiles[0][7].piece = Rook(Color.BLACK)

        for i in range(self.width):
            self.tiles[1][i].piece = Pawn(Color.BLACK)
            self.tiles[6][i].piece = Pawn(Color.WHITE)

        self.tiles[7][0].piece = Rook(Color.WHITE)
        self.tiles[7][1].piece = Knight(Color.WHITE)
        self.tiles[7][2].piece = Bishop(Color.WHITE)
        self.tiles[7][3].piece = Queen(Color.WHITE)
        self.tiles[7][4].piece = King(Color.WHITE)
        self.tiles[7][5].piece = Bishop(Color.WHITE)
        self.tiles[7][6].piece = Knight(Color.WHITE)
        self.tiles[7][7].piece = Rook(Color.WHITE)
Пример #3
0
  def reset_board(self):
    boxes = self.__boxes
    # initialize white pieces
    boxes[0][0] = Box(Rook(True), 0, 0);
    boxes[0][1] = Box(Knight(True), 0, 1);
    boxes[0][2] = Box(Bishop(True), 0, 2);
    #...
    boxes[1][0] = Box(Pawn(True), 1, 0);
    boxes[1][1] = Box(Pawn(True), 1, 1);
    #...

    # initialize black pieces
    boxes[7][0] = Box(Rook(False), 7, 0);
    boxes[7][1] = Box(Knight(False), 7, 1);
    boxes[7][2] = Box(Bishop(False), 7, 2);
    #...
    boxes[6][0] = Box(Pawn(False), 6, 0);
    boxes[6][1] = Box(Pawn(False), 6, 1);
    # ...

    # initialize remaining boxes without any piece
    for i in range(2, 6):
      for j in range(0, 8):
        boxes[i][j] = Box(i, j, None)
Пример #4
0
    def test_is_at_starting_rank_correctness(self):
        with self.subTest('white'):
            wp = Pawn(Color.WHITE)
            for file in File:
                self.assertTrue(wp.is_at_starting_pos(Position(Rank.TWO,
                                                               file)))

            self.assertFalse(
                wp.is_at_starting_pos(Position(Rank.SEVEN, File.G)))

        with self.subTest('black'):
            bp = Pawn(Color.BLACK)
            for file in File:
                self.assertTrue(
                    bp.is_at_starting_pos(Position(Rank.SEVEN, file)))

            self.assertFalse(bp.is_at_starting_pos(Position(Rank.TWO, File.G)))
Пример #5
0
from chess.pieces.queen import Queen
from chess.pieces.king import King

from chess.position import Position
from chess.team import Team
from chess.check import *




chessBoard_init = [
        [
            Rook(Position(0, 0), Team.BLACK), Knight(Position(1, 0), Team.BLACK), Bishop(Position(2, 0), Team.BLACK), Queen(Position(3, 0), Team.BLACK), King(Position(4, 0), Team.BLACK), Bishop(Position(5, 0), Team.BLACK), Knight(Position(6, 0), Team.BLACK), Rook(Position(7, 0), Team.BLACK)
        ],
        [
            Pawn(Position(x, 1), Team.BLACK) for x in range(8)
        ],
        [None for _ in range(8)],
        [None for _ in range(8)],
        [None for _ in range(8)],
        [None for _ in range(8)],
        [
            Pawn(Position(x, 6), Team.WHITE) for x in range(8)
        ],
        [
            Rook(Position(0, 7), Team.WHITE), Knight(Position(1, 7), Team.WHITE), Bishop(Position(2, 7), Team.WHITE), Queen(Position(3, 7), Team.WHITE), King(Position(4, 7), Team.WHITE), Bishop(Position(5, 7), Team.WHITE), Knight(Position(6, 7), Team.WHITE), Rook(Position(7, 7), Team.WHITE)
        ],
        
    ]
checkBoard_init = fillCheckBoard(chessBoard_init, Team.WHITE)[0]
Пример #6
0
 def setUp(self):
     self.coords = Coordinates('d', 4)
     self.pawn = Pawn(self.coords, 'white')
Пример #7
0
 def test_it_can_be_instantiated(self):
     pawn = Pawn(Color.BLACK)
     self.assertIsInstance(pawn, Pawn)
Пример #8
0
 def test_it_has_the_proper_strong_representation_for_its_color(self):
     b_pawn = Pawn(Color.BLACK)
     self.assertEqual(str(b_pawn), '\u265F')
     w_pawn = Pawn(Color.WHITE)
     self.assertEqual(str(w_pawn), '\u2659')
Пример #9
0
    def test_it_can_validate_moves(self):
        b_pawn = Pawn(Color.BLACK)
        self.assertTrue(b_pawn.is_valid_move('b7', 'b6'))
        self.assertTrue(b_pawn.is_valid_move('b7', 'b5'))
        self.assertTrue(b_pawn.is_valid_move('a7', 'a5'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'b4'))
        self.assertFalse(b_pawn.is_valid_move('b6', 'b4'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'b1'))
        self.assertFalse(b_pawn.is_valid_move('a7', 'b1'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'a8'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'b8'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'c8'))
        self.assertFalse(b_pawn.is_valid_move('b7', 'c7'))

        w_pawn = Pawn(Color.WHITE)
        self.assertTrue(w_pawn.is_valid_move('b2', 'b3'))
        self.assertTrue(w_pawn.is_valid_move('b2', 'b4'))
        self.assertTrue(w_pawn.is_valid_move('a2', 'a4'))
        self.assertFalse(w_pawn.is_valid_move('b2', 'b5'))
        self.assertFalse(w_pawn.is_valid_move('b2', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('c2', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('a2', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('a3', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('c3', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('c1', 'b1'))
        self.assertFalse(w_pawn.is_valid_move('a1', 'b1'))
Пример #10
0
 def test_is_white_correctness(self):
     with self.subTest('white'):
         self.assertTrue(Pawn(Color.WHITE).is_white)
     with self.subTest('black'):
         self.assertFalse(Pawn(Color.BLACK).is_white)