예제 #1
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_filter_moves_lance_method(self, color, moves_1, moves_2, filtered_1, filtered_2):
     self.game.board = self.sample_board
     self.game.board[4][4] = Lance(color, (4, 4))
     self.game.board[4][3] = Lance(color, (4, 3))
     self.game.board[2][4] = Pawn("white", (2, 4))
     self.game.board[2][3] = Pawn("black", (2, 3))
     self.game.board[6][4] = Pawn("white", (6, 4))
     self.game.board[6][3] = Pawn("black", (6, 3))
     self.assertEqual(self.game.board[4][4].filter_moves(moves_1, self.game.board), filtered_1)
     self.assertEqual(self.game.board[4][3].filter_moves(moves_2, self.game.board), filtered_2)
예제 #2
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_normal_pieces_promoted(self, color, valid, obstacle, capture):
     pieces = [Pawn, Lance, Knight, SilverGeneral]
     self.game.board = self.sample_board
     for piece in pieces:
         self.game.board[4][4] = piece(color, (4, 4))
         self.game.board[4][4].promote()
         self.assertEqual(self.game.board[4][4].movement_promoted(self.game.board), valid)
         self.game.board[5][4] = self.game.board[3][4] = Pawn(color, (1, 1))
         self.assertEqual(self.game.board[4][4].movement_promoted(self.game.board), obstacle)
         self.game.board[5][4] = self.game.board[3][4] = Pawn("color", (1, 1))
         self.assertEqual(self.game.board[4][4].movement_promoted(self.game.board), capture)
예제 #3
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_goldgeneral_moves(self, color, valid, obstacle, capture):
     self.game.board = self.sample_board
     self.game.board[4][4] = GoldGeneral(color, (4, 4))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         valid)
     self.game.board[5][4] = self.game.board[3][4] = Pawn(color, (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         obstacle)
     self.game.board[5][4] = self.game.board[3][4] = Pawn("color", (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         capture)
예제 #4
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_bishop_moves_unpromoted(self, color, valid, obstacle, capture):
     self.game.board = self.sample_board
     self.game.board[4][4] = Bishop(color, (4, 4))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         valid)
     self.game.board[2][2] = self.game.board[2][6] = Pawn(color, (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         obstacle)
     self.game.board[2][2] = self.game.board[2][6] = Pawn("color", (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         capture)
예제 #5
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_valid_drops_P_method(self, color, front_of_king):
     piece = Pawn(color, (4, 4))
     self.game.board[6][4] = self.game.board[2][4] = "   "
     self.game.board[6][3] = self.game.board[2][3] = "   "
     valid_spaces = [
                 (1, 3),  (1, 4),
                 (2, 3),  (2, 4),
                 (3, 3), (3, 4),
                 (4, 3), (4, 4),
                 (5, 3), (5, 4),
                 (6, 3), (6, 4),
                 (7, 3), (7, 4)]
     valid_spaces.remove(front_of_king)
     self.assertEqual(piece.valid_drops(self.game.board), valid_spaces)
예제 #6
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_lance_moves_unpromoted(self, color, valid, obstacle, capture):
     self.game.board = self.sample_board
     self.game.board[4][4] = Lance(color, (4, 4))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         valid)
     self.game.board[1][4] = self.game.board[7][4] = Pawn(color, (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         obstacle)
     self.game.board[1][4] = self.game.board[7][4] = Pawn("color", (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_unpromoted(self.game.board),
         capture)
예제 #7
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_filter_moves_bishop_method(self, color, coords_nw, coords_ne, coords_sw, coords_se):
     moves_nw, filtered_moves_nw = coords_nw
     moves_ne, filtered_moves_ne = coords_ne
     moves_sw, filtered_moves_sw = coords_sw
     moves_se, filtered_moves_se = coords_se
     self.game.board = self.sample_board
     self.game.board[4][4] = Bishop(color, (4, 4))
     self.game.board[2][2] = Pawn("white", (2, 4))
     self.game.board[2][6] = Pawn("black", (4, 2))
     self.game.board[6][2] = Pawn("white", (4, 6))
     self.game.board[6][6] = Pawn("black", (6, 4))
     self.assertEqual(self.game.board[4][4].filter_moves(moves_nw, self.game.board), filtered_moves_nw)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_ne, self.game.board), filtered_moves_ne)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_sw, self.game.board), filtered_moves_sw)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_se, self.game.board), filtered_moves_se)
예제 #8
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_filter_moves_rook_method(self, color, coords_n, coords_w, coords_e, coords_s):
     moves_n, filtered_moves_n = coords_n
     moves_w, filtered_moves_w = coords_w
     moves_e, filtered_moves_e = coords_e
     moves_s, filtered_moves_s = coords_s
     self.game.board = self.sample_board
     self.game.board[4][4] = Rook(color, (4, 4))
     self.game.board[2][4] = Pawn("white", (2, 4))
     self.game.board[4][2] = Pawn("black", (4, 2))
     self.game.board[4][6] = Pawn("white", (4, 6))
     self.game.board[6][4] = Pawn("black", (6, 4))
     self.assertEqual(self.game.board[4][4].filter_moves(moves_n, self.game.board), filtered_moves_n)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_w, self.game.board), filtered_moves_w)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_e, self.game.board), filtered_moves_e)
     self.assertEqual(self.game.board[4][4].filter_moves(moves_s, self.game.board), filtered_moves_s)
예제 #9
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_validate_origin_coordinates_location_method_invalid(self, color, coords):
     piece = Pawn(color, (0, 0))
     piece.captured = True
     self.game.white_captures.append(piece)
     self.game.black_captures.append(piece)
     self.game.playerturn = color
     cant_drop, empty_space, cant_move, enemy_piece = coords 
     self.assertFalse(self.game.validate_origin_coordinates_location(cant_drop[0], cant_drop[1]))
     self.assertEqual(self.game.error, "Cant drop this piece anywhere right now!")
     self.assertFalse(self.game.validate_origin_coordinates_location(empty_space[0], empty_space[1]))
     self.assertEqual(self.game.error, "Thats an empty space!")
     self.assertFalse(self.game.validate_origin_coordinates_location(cant_move[0], cant_move[1]))
     self.assertEqual(self.game.error, "You can't move that piece anywhere right now!")
     self.assertFalse(self.game.validate_origin_coordinates_location(enemy_piece[0], enemy_piece[1]))
     self.assertEqual(self.game.error, "Thats not one of your pieces!")
예제 #10
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_rook_moves_promoted(self, color, valid, obstacle, capture):
     self.game.board = self.sample_board
     self.game.board[4][4] = Rook(color, (4, 4))
     self.game.board[4][4].promote()
     self.assertEqual(
         self.game.board[4][4].movement_promoted(self.game.board),
         valid)
     self.game.board[4][2] = self.game.board[4][6] = Pawn(color, (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_promoted(self.game.board),
         obstacle)
     self.game.board[4][2] = self.game.board[4][6] = Pawn("color", (1, 1))
     self.assertEqual(
         self.game.board[4][4].movement_promoted(self.game.board),
         capture)
예제 #11
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_check_if_valid_for_promotion(self, color, coordinates):
     row, col = coordinates
     self.game.board = self.sample_board
     self.game.board[4][4] = Pawn(color, (4, 4))
     self.assertFalse(self.game.board[4][4].set_for_promotion)
     self.game.board[4][4].update_position(row, col)
     self.assertTrue(self.game.board[4][4].set_for_promotion)
예제 #12
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_promote_method(self):
     self.game.board = self.sample_board
     self.game.board[4][4] = Pawn("white", (4, 4))
     self.assertFalse(self.game.board[4][4].promoted)
     self.game.board[4][4].promote()
     self.assertTrue(self.game.board[4][4].promoted)
     self.assertFalse(self.game.board[4][4].set_for_promotion)
예제 #13
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_pawn_creation(self, color, orientation, position):
     pawn = Pawn(color, position)
     self.assertEqual(pawn.color, color)
     self.assertEqual(pawn.name, "P")
     self.assertFalse(pawn.promoted)
     self.assertFalse(pawn.set_for_promotion)
     self.assertFalse(pawn.captured)
     self.assertEqual(str(pawn), f" P{orientation}")
예제 #14
0
 def test_input_destiny_coordinates_forced_promotion(self, mock):
     piece = Pawn("white", (1, 3))
     self.play.game.board[1][3] = piece
     self.play.game.playerturn = "white"
     self.assertFalse(self.play.game.board[1][3].promoted)
     self.play.game.play_origin(1, 3)
     self.assertEqual(self.play.game.lifted_piece, piece)
     self.play.input_destiny_coordinates()
     self.assertTrue(self.play.game.board[0][3].promoted)
     self.assertEqual(self.play.game.board[0][3], piece)
예제 #15
0
 def test_input_destiny_coordinates_ask_to_promote(self, mock):
     piece = Pawn("white", (3, 4))
     self.play.game.board[3][4] = piece
     self.play.game.playerturn = "white"
     self.assertFalse(self.play.game.board[3][4].promoted)
     self.play.game.play_origin(3, 4)
     self.assertEqual(self.play.game.lifted_piece, piece)
     self.play.input_destiny_coordinates()
     self.assertTrue(self.play.game.board[2][4].promoted)
     self.assertEqual(self.play.game.board[2][4], piece)
예제 #16
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_valid_method(self):
     unpromoted_valid = [(3, 4)]
     promoted_valid = [(3, 3), (3, 4), (3, 5), (4, 3), (4, 5), (5, 4)]
     self.game.board = self.sample_board
     self.game.board[4][4] = Pawn("white", (4, 4))
     self.assertEqual(
         self.game.board[4][4].valid_moves(self.game.board),
         unpromoted_valid)
     self.game.board[4][4].promote()
     self.assertEqual(
         self.game.board[4][4].valid_moves(self.game.board),
         promoted_valid)
예제 #17
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_pawn_drop_rules_method(self, color, enemy_color, front_of_king):
     invalid_spaces = [(0, 3), (1, 3), (2, 3), (3, 3), (5, 3), (6, 3), (7, 3), (8, 3), (9, 3)]
     invalid_spaces.append(front_of_king)
     self.game.board = self.sample_board
     self.game.board[4][3] = Pawn(color, (4, 3))
     self.game.board[4][4] = King(enemy_color, (4, 4))
     empty_spaces = []
     pawn = Pawn(color, (0, 0))
     for row in range(9):
         for col in range(9):
             if self.game.board[row][col] == "   ":
                 pawn.position = (row, col)
                 if len(pawn.movement_unpromoted(self.game.board)) > 0:
                     empty_spaces.append((row, col))
     for space in invalid_spaces:
         self.assertFalse(space in pawn.pawn_drop_rules(self.game.board, empty_spaces))
예제 #18
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_filter_moves_normal_method(self, color, coords, filtered_coords):
     self.game.board = self.sample_board
     self.game.board[0][0] = King(color, (0, 0))
     self.game.board[0][1] = Pawn("white", (0, 1))
     self.game.board[1][0] = Pawn("black", (1, 0))
     self.assertEqual(self.game.board[0][0].filter_moves(coords, self.game.board), filtered_coords)
예제 #19
0
파일: test_shogi.py 프로젝트: fedeh7/Shogi
 def test_update_position_method(self):
     self.game.board = self.sample_board
     self.game.board[4][4] = Pawn("white", (4, 4))
     self.assertEqual(self.game.board[4][4].position, (4, 4))
     self.game.board[4][4].update_position(3, 4)
     self.assertEqual(self.game.board[4][4].position, (3, 4))