我想使用回溯模拟 n 个皇后问题。我每次都用一个列表作为参数调用这个 drawboard() 函数,如下所示
def show_columns(x): 打印“列:”,x 如果 len(x)!=0: 画板(x)
此列表“x”是从递归过程返回的,因此将在每次迭代后更新
所以每次它都显示在单独的窗口中。只有在关闭第一个窗口后才会显示下一个窗口,依此类推......
如何在单个窗口中制作东西,或者如何在特定时间间隔后自动关闭这些窗口,以便这些窗口一一显示
我绘制棋盘的功能如下
def draw_board(the_board): pygame.init() 颜色 = [(255,178,102), (255,255,255)] surface_sz = 480 sq_sz = surface_sz // n surface_sz = n * sq_sz 表面 = pygame.display.set_mode((surface_sz, surface_sz)) 球 = pygame.image.load("queen.png") 而真: ev = pygame.event.poll() 如果 ev.type == pygame.QUIT: 休息; 对于范围(n)中的行: c_indx = 行 % 2 对于范围内的col(n): the_square = (col*sq_sz, row*sq_sz, sq_sz, sq_sz) 表面填充(颜色[c_indx],the_square) c_indx = (c_indx + 1) % 2 枚举(the_board)中的(col,row): 表面.blit(球, (col*sq_sz+ball_offset,row*sq_sz+ball_offset)) pygame.display.flip() pygame.quit()