更新显示tkinter玩家的标签

问题描述:

对于我需要制作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在创建游戏时,几乎所有的对象和类都是必需的,即使是简单的游戏也是如此。 – dannyxn

+1

首先定义一个'Player'类并创建它的两个实例。然后将其中的一个指定为'current_player',并修改其余的函数以引用(作为参数或全局变量)。这将允许你简单地通过给'current_player'分配一个不同的值来切换玩家。 – martineau

+1

兄弟,我检查了你的代码,它甚至不工作! – dannyxn

你需要使用 “绑定” 选项:

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() 

它是: xxx.bind(,命令应执行)

例如我的第一个答案,对不起我的英文

+0

当我这样做比我得到这个错误= TypeError:one_coin()需要0位置参数,但1给出 –

+0

@FreddieBo你需要定义函数像def one_coin(事件): –

+0

现在它的工作。 –