def test_process_free_position_pops_first_piece_from_list(self): board = Board(3, 3) piece_list = [King(), Queen()] ChessManager.process_free_position(board, piece_list, 2, 2) self.assertListEqual(piece_list, [Queen()])
def test_process_free_position_decrements_count_of_empty_positions(self): board = Board(3, 3) piece_list = [King()] count = board.count_empty_positions() ChessManager.process_free_position(board, piece_list, 2, 2) self.assertGreater(count, board.count_empty_positions())
def test_place_pieces_returns_empty_when_empty_positions_lower_than_piece_left(self): board = Board(3, 3) piece_list = [King(), King()] for i in range(0, 8): board.set_position_value(i%board.get_width(), i//board.get_width(), '-1') board_list = ChessManager.place_pieces(board, piece_list, 0, 0) self.assertSetEqual(board_list, set())
def main(): board, pieces = ParameterManager.get_parameters() piece_perms = set(itertools.permutations(pieces)) board_list = [] for piece_perm in piece_perms: board_list.extend(ChessManager.place_pieces(board, list(piece_perm), 0, 0)) board_set = set(board_list) print('') print("TOTAL: "+str(len(board_set))) answer = input("Print every board configuration? (Y/n): ") if answer == 'Y': for elem in board_set: BoardPrinter.print_board(elem)
def test_place_pieces_returns_empty_when_out_of_bounds(self): board = Board(3, 3) piece_list = [King()] board_list = ChessManager.place_pieces(board, piece_list, -1, 2) self.assertSetEqual(board_list, set())
def test_place_pieces_returns_board_when_no_pieces_left(self): board = Board(3, 3) board_list = ChessManager.place_pieces(board, [], 0, 0) self.assertSetEqual(board_list, set([board]))