2017-01-09 4 views
-1

プロジェクトでは、nimゲームを作成する必要があり、それがどのプレーヤーであるかを示すラベルが必要です。しかし、今では、プレイヤーがボタンをクリックして1つまたは2つのコインを取った後にラベルを更新する必要があります。 2人の選手がいなければなりません。そして、今私はそれをする方法を知らない。ここでtkinterにプレーヤーを示すラベルを更新する

は私のスクリプトです:

from tkinter import * 

player = 1 

def player_status(): 
    global player 

root = Tk() 
root.geometry('500x300') 

frame = Frame(root) 

state = Label(frame, text="State: " + str(coins)) 
state.pack() 
player = Label(frame, text="Player " + str(player) + " turns!") 
player.pack() 

takeonecoin = Button(frame, text="1 coin", commad=one_coin) 
takeonecoin.pack() 
taketwocoins = Button(frame, text="2 coins", command=two_coins) 
taketwocoins.pack() 

frame.pack() 

root.mainloop() 
+1

あなたは非常に乱雑に見えます、私はあなたにab OOP、オブジェクト、クラスはゲーム作成にはほとんど必要です。 – dannyxn

+1

まず、 'Player'クラスを定義し、その2つのインスタンスを作成します。次に、それらのうちの1つを 'current_player'に割り当て、他の関数をそれを(引数またはグローバル変数として)参照するように変更します。これにより、 'current_player'に異なる値を割り当てるだけで、選手を切り替えることができます。 – martineau

+1

Broは、あなたのコードをチェックしました、それは動作していません! – dannyxn

答えて

-1

あなたが "バインド" オプションを使用する必要があります。たとえば xxx.bind(実行する必要があり、コマンド)

takeonecoin = Button(frame, text="1 coin") 
takeonecoin.bind('<Button-1>', one_coin) 
takeonecoin.pack() 
taketwocoins = Button(frame, text="2 coins") 
taketwocoins.bind('<Button-1>', two_coin) 
taketwocoins.pack() 

にですが私の最初の答えは、私の英語のために申し訳ありません

+0

私はこれを行うよりも、このエラーが発生します= TypeError:one_coin()は0の位置引数をとりますが、1が与えられました –

+0

@FreddieBort one_coin(イベント): –

+0

のような関数を定義する必要があります。 –

関連する問題