バックトラッキングを使用して n クイーン問題をシミュレートしたい。以下のような引数としてリストを使用して、毎回この drawboard() 関数を呼び出しています
デフォルト show_columns(x): print "columns:", x len(x)!=0 の場合: draw_board(x)
このリスト 'x' は再帰プロシージャから返されるため、各反復後に更新されます
したがって、毎回別のウィンドウに表示されます。次のウィンドウは、最初のウィンドウを閉じた後にのみ表示されます...
単一のウィンドウで物事を作成するにはどうすればよいですか、または特定の時間間隔の後にこれらのウィンドウを自動的に閉じて、これらのウィンドウが 1 つずつ表示されるようにするにはどうすればよいですか
チェス盤を描く私の機能は次のとおりです
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 surface = pygame.display.set_mode((surface_sz, surface_sz)) ボール = pygame.image.load("queen.png") True の間: ev = pygame.event.poll() ev.type == pygame.QUIT の場合: 壊す; 範囲内の行 (n): c_indx = 行 % 2 範囲内の列 (n): the_square = (列*sq_sz、行*sq_sz、sq_sz、sq_sz) surface.fill(colors[c_indx], the_square) c_indx = (c_indx + 1) % 2 for (col, row) in enumerate(the_board): surface.blit(ボール、 (col*sq_sz+ball_offset,row*sq_sz+ball_offset)) pygame.display.flip() pygame.quit()