def test_elephant_capture(self):
        """
        1. Mouse/rat
        8. Elephant
        The exception is rax x elephant: the elephant can't capture the mouse
        and the mouse can capture the elephant
        """
        player1 = MockPlayer()
        player2 = MockPlayer()

        piece1 = Piece(player1, Piece.MOUSE)
        piece8 = Piece(player2, 8)

        self.failIf(piece8.can_catch(piece1))
        self.assertTrue(piece1.can_catch(piece8))
Esempio n. 2
0
    def test_piece_functionality(self):
        colour_black = "Black"
        colour_white = "White"
        black_piece_name = "K"
        white_piece_name = "Q"

        black_piece = Piece('Black', 'K')
        white_piece = Piece('White', 'Q')

        self.assertEqual(black_piece.name, black_piece_name)
        self.assertEqual(black_piece.colour, colour_black)

        self.assertEqual(white_piece.name, white_piece_name)
        self.assertEqual(white_piece.colour, colour_white)

        self.assertNotEqual(black_piece, white_piece)
Esempio n. 3
0
    def test_correct_initial_piece_placement(self):

        for colour, row in zip(["White", "Black"], ["1","8"]):
            rook = Piece(colour, 'R')
            self.assertEqual(
                    str(self.board.piece_on_position('A' + row)),
                    str(rook))
Esempio n. 4
0
    def init_pieces(self, send=True):
        self.pieces = list()
        self.fields = [[] for _ in range(24)]
        self.fields[0] = [True] * 2
        self.fields[5] = [False] * 5
        self.fields[7] = [False] * 3
        self.fields[11] = [True] * 5
        self.fields[23] = [False] * 2
        self.fields[18] = [True] * 5
        self.fields[16] = [True] * 3
        self.fields[12] = [False] * 5
        self.pieces = list()
        self.piece_size = 42
        self.ping_iter = 0
        ident = 1
        for field_id, field in enumerate(self.fields):
            top = field_id // 12 == 1
            for piece_id, is_black in enumerate(field):
                offset_x = self.board.triangle_width//2 + \
                    self.board.triangle_width * (field_id % 12) + \
                    ((field_id % 12) // 6) * self.board.offset_x
                x = offset_x if top else self.width - offset_x
                ((field_id % 12) // 6) * self.board.offset_x
                y = self.piece_size * \
                    (piece_id*2+1) if top else self.height - \
                    self.piece_size * (piece_id*2+1)
                pos = (x, y)
                self.pieces.append(Piece(self, ident, pos, is_black))
                ident += 1
        self.dice.reset()

        if self.reset_sound is not None:
            self.reset_sound.play()
            if send:
                connection.Send({"action": "resetboard"})
Esempio n. 5
0
File: ui.py Progetto: physpim/chess
 def select_piece(self) -> Piece:
     """Asks the user to select a piece to make a move with"""
     question = Ui.color_dict[self.board.turn_color] + \
         ", your turn! Please select a piece. \n"
     piece = Piece(None, None, None, None, None)
     while piece.color is None or piece.color != self.board.turn_color:
         coordinate = input(question)
         position = self.coordinate2position(coordinate)
         piece = self.board.find_piece(position)
         question = "No piece of yours at this field, try again! \n"
     return piece
    def test_trap_capture(self):
        """
        If a piece are in a trap, your value is 0 and it can be captured by any
        other piece
        """
        player1 = MockPlayer()
        player2 = MockPlayer()

        piece1 = Piece(player1, Piece.MOUSE)
        piece2 = Piece(player2, 2)

        piece2.trap()
        self.assertTrue(piece1.can_catch(piece2))

        piece2.release()
        self.failIf(piece1.can_catch(piece2))
    def test_capture(self):
        """
        1. Mouse/rat
        2. Cat
        A catch is allowed to less or equal value. A cat can catch a mouse, but
        a mouse can't catch a cat
        """
        player1 = MockPlayer()
        player2 = MockPlayer()

        piece1 = Piece(player1, Piece.MOUSE)
        piece2 = Piece(player2, 2)

        self.failIf(piece1.can_catch(piece2))
        self.assertTrue(piece2.can_catch(piece1))

        piece2 = Piece(player2, Piece.MOUSE)
        self.assertTrue(piece2.can_catch(piece1))
        self.assertTrue(piece1.can_catch(piece2))