如何让两个骰子的结果显示在 python 中的 "scorebox" 中?
How can I get the outcome of the two dice to show as a result in a "scorebox" in python?
这很简单,我希望在 GUI 的某处的“记分框”中显示两个骰子的总和值。我试图到处寻找,但无法在任何地方提出一个简单的解决方案。任何人都可以帮助 python 菜鸟? :)
(代码是从 YouTube 教程中复制的,所以不是我的代码。)
import tkinter as tk
import random
#creating the GUI itself
root = tk.Tk()
root.geometry('600x400')
root.title('Roll Dice')
label = tk.Label(root, text='', font=('Helvetica', 260))
#dice function
def roll_dice():
dice = ['\u2680', '\u2681', '\u2682', '\u2683', '\u2684', '\u2685']
label.configure(text=f'{random.choice(dice)} {random.choice(dice)}')
label.pack()
#button to press to start rolling the dice
button = tk.Button(root, text='Roll Dice', foreground='black', command=roll_dice)
button.pack()
root.mainloop()
您可以简单地将文本映射到字典中,然后在键上使用索引来获取分数,然后将分数相加。
dice = {'\u2680':1, '\u2681':2, '\u2682':3, '\u2683':4, '\u2684':5, '\u2685':6}
scorebox = tk.Label(root, font=('Helvetica', 20)) # Make a scoresheet label
def roll_dice():
first,second = random.choice(list(dice)), random.choice(list(dice)) # Two random rolls
score_text = dice[first] + dice[second] # Corresponding texts
label.configure(text=f'{first} {second}') # Change the label
scorebox.configure(text=score_text)
label.pack()
scorebox.pack()
为什么字典定义在函数外?这样它只定义一次,不会在函数内部不必要地覆盖。
这很简单,我希望在 GUI 的某处的“记分框”中显示两个骰子的总和值。我试图到处寻找,但无法在任何地方提出一个简单的解决方案。任何人都可以帮助 python 菜鸟? :)
(代码是从 YouTube 教程中复制的,所以不是我的代码。)
import tkinter as tk
import random
#creating the GUI itself
root = tk.Tk()
root.geometry('600x400')
root.title('Roll Dice')
label = tk.Label(root, text='', font=('Helvetica', 260))
#dice function
def roll_dice():
dice = ['\u2680', '\u2681', '\u2682', '\u2683', '\u2684', '\u2685']
label.configure(text=f'{random.choice(dice)} {random.choice(dice)}')
label.pack()
#button to press to start rolling the dice
button = tk.Button(root, text='Roll Dice', foreground='black', command=roll_dice)
button.pack()
root.mainloop()
您可以简单地将文本映射到字典中,然后在键上使用索引来获取分数,然后将分数相加。
dice = {'\u2680':1, '\u2681':2, '\u2682':3, '\u2683':4, '\u2684':5, '\u2685':6}
scorebox = tk.Label(root, font=('Helvetica', 20)) # Make a scoresheet label
def roll_dice():
first,second = random.choice(list(dice)), random.choice(list(dice)) # Two random rolls
score_text = dice[first] + dice[second] # Corresponding texts
label.configure(text=f'{first} {second}') # Change the label
scorebox.configure(text=score_text)
label.pack()
scorebox.pack()
为什么字典定义在函数外?这样它只定义一次,不会在函数内部不必要地覆盖。