示例#1
0
 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()])
示例#2
0
    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())

        
示例#3
0
 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())
示例#4
0
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)
示例#5
0
 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())
示例#6
0
 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]))