私は学校用のGUIを使ってプログラムを書いています。tkinter 7x7ボタンを作り、クリックすると色が変わります
私はPah Tumと書いています。それは7x7の行列で演奏されます。私のコンソールゲームは完結していますが、今はTkinterと闘っています。
これまでのところ、__init__
の機能で定義されたフレームの中にいくつかのフレームがあります。だから今
最初の問題:
私はこのような7x7のボードを作ることができる:
for x in range(0, 7):
for y in range(0, 7):
self.button = Button(self.board, command=self.action)
self.button.grid(row = x, column = y)
を私は今、何をしたいそれでは、私はボタンを押すたびに、私は変更したいです赤色(プレイヤー1の場合)または青色(プレイヤー2の場合)。
self.turn_tracker = 0 # is in __init__
def action(self):
if self.turn_tracker in range(0, 49, 2):
self.turn_tracker += 1
self.button.configure(bg="blue")
elif self.turn_tracker in range(1, 49, 2):
self.turn_tracker += 1
self.button.configure(bg="red")
elif self.turn_tracker == 49:
print("game over")
sys.exit() #calculate
これは6x6でボタンを変更するだけです。 私が試したのは、すべてのボタンを別々に定義し、各ボタンごとに別々に変更する方法です。あなたが想像することができるように、これは本当に本当に醜いですが、それは少なくとも動作します。
私は効率を上げるために何ができますか?助けてくれてありがとう!
昨日は7x7グリッドの赤いボタンと同様の質問でした:[Python Tkinter - ボタン付き辞書 - どのように無効にしますか?](https://stackoverflow.com/questions/47821717/python-tkinter-dictionary-with-あなたがリストにボタンを置いておく必要があります。 – furas
'self.button'はボタンを1つだけ保つことができ、最後のボタンは保持します。 – furas
彼は同じ仕事に取り組んでいなければなりません。私はそれを見て、ありがとう! – Marcel