こんにちは私は、ボタンをクリックして宝物かどうかを示すゲームを作成しようとしています。それが宝であれば、あなたはあなたのコインを失った山賊であればポイントを得ることができます。 次のコードを作成しましたが、配列に格納された値にボタンを設定しているかどうかを調べる方法が見つかりません。 どのように配列内のデータを使用し、ボタンがクリックされたときにその値が何かを示します。 配列を正しくしていますが、私は円で回っていて、すぐに考えることができません。ランダムに設定された配列の値をtkinterボタンに割り当てるときの問題
from tkinter import *
import tkinter.messagebox
import random
#count=0
root = Tk()
TreasureMap = Frame(root)
TreasureMap.grid()
root.title("TreasureMap")
text_box = Entry(TreasureMap, justify=RIGHT)
text_box.grid(row = 0, column = 0, columnspan = 8,)
text_box.insert(0, "0")
amount_to_add='B'
my_array = [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0]]
my_array[random.randrange(len(my_array))].append(amount_to_add)
my_array[random.randrange(len(my_array))].append(amount_to_add)
my_array[random.randrange(len(my_array))].append(amount_to_add)
my_array[random.randrange(len(my_array))].append(amount_to_add)
Treasure='T'
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
my_array[random.randrange(len(my_array))].append(Treasure)
print(my_array)
def changelabel(): `
tkinter.messagebox.showinfo('Hellow this button works') ``
print('hello this button works') ` ``
print(my_array) `` ``
return
i = 0
bttn = []
for j in range(1,9):`
for k in range(8): ``
bttn.append(Button(TreasureMap, text = ' ', value=random.shuffle
(my_array),command=changelabel))
bttn[i].grid(row = j, column = k)
i += 1 ``
TreasureMap.mainloop()
コマンド=ラムダ行= j、列= k:このコードではchangelabel(行、列)は何ですか? –
コマンドは、使用したのと同じようにボタンに渡される引数です。しかし、ボタンが呼び出された行/列を知るためのパラメータを 'changelabel'に含めることも必要です。 [コールバックは、関数、バインドされたメソッド、または他の呼び出し可能なPythonオブジェクト](http://effbot.org/tkinterbook/button.htm#Tkinter.Button.config-method)です。ここで、 'changelabel' *はその関数です*およびλ(http://www.secnetix.de/olli/Python/lambda_functions.hawk)は、実行時に 'changelabel'に渡すパラメータとして' j'と 'k'を割り当てます – davedwards