私はsudokuパズルジェネレーター用の9x9グリッドを作成しています。 これまで、フレームの最初の行に9つの変数を作成し、9つの変数にグリッド行/列を割り当てました。私が使用しているコードは以下の通りです。9x9グリッドをより効率的に作成するにはどうすればいいですか? (Python、Tkinter)
グリッド用に81個のセルを作成する必要があるため、これを実行するより効率的な方法が必要です。どうすればより効率的に/もっとうまくいくのですか?助けてください!
コード:
from tkinter import *
root = Tk()
root.title('Sudoku')
root.geometry('1000x1000')
# create all of the main containers
center = Frame(root, bg='white', width=900, height=900, padx=3, pady=3)
# layout all of the main containers
root.grid_rowconfigure(9, weight=1)
root.grid_columnconfigure(9, weight=1)
center.grid(row=1, sticky="nsew")
# create the center widgets
center.grid_rowconfigure(0, weight=1)
center.grid_columnconfigure(1, weight=1)
cell1 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell2 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell3 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell4 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell5 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell6 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell7 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell8 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
cell9 = Frame(center, bg='white', highlightbackground="black", highlightcolor="black", highlightthickness=1, width=100, height=100, padx=3, pady=3)
#create first row of grid
cell1.grid(row=0, column=0)
cell2.grid(row=0, column=1)
cell3.grid(row=0, column=2)
cell4.grid(row=0, column=3)
cell5.grid(row=0, column=4)
cell6.grid(row=0, column=5)
cell7.grid(row=0, column=6)
cell8.grid(row=0, column=7)
cell9.grid(row=0, column=8)
root.mainloop()
forループを使用しますか? '私は範囲(81)にある: ' – Novel
それは良い質問ですが、他のところでは素晴らしい答えがあります。ネストリスト(Python)または2次元配列(tkinter)に関するチュートリアルを検索します。スタックオーバーフローは、精神的プログラミングに関するチュートリアルの場所ではありません。 – Prune