我想使用回溯模拟 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()