你可能熟悉或不熟悉一款名为“狼人”的流行派对游戏 - 游戏的细节在这里并不重要,但我正在尝试制作一个程序来决定团队。
我有以下代码非常简单 - 它包含3个方法,我希望附加到按钮,然后在程序运行时显示在窗口中。
代码如下所示:
from Tkinter import *
from random import randint # import random integer generator
playerList = []
numberOfWolves = 0
def setWolfNumber(x):
numberOfWolves = x
def listAdd(string):
playerList.append(string)
def chooseTeams():
werewolves = [] # list of wolves, populated later for printing
villagers = [] # same as wolves but for villiagers
for x in range(0,len(playerList)): # loop for the number of players. Each iteration chooses a random player and decides whether they're a werewolf or not. After 2 werewolves it just adds villagers.
random = randint(0,len(playerList)-1)
player = playerList[random]
decide = randint(0,1)
if decide == 0 and len(werewolves) < numberOfWolves:
werewolves.append(player)
else:
villagers.append(player)
playerList.remove(player)
for wolf in werewolves: #prints wolf names
print wolf + " is a werewolf"
seer = villagers[randint(0,len(villagers))-1] #decide seer, print that, make sure they won't be reprinted with villagers
villagers.remove(seer)
print seer + " is the seer"
doctor = villagers[randint(0,len(villagers))-1] #same as seer but with the doctor
villagers.remove(doctor)
print doctor + " is the doctor"
for villager in villagers: # print villagers
print villager + " is a villager"
top = Tk()
top.wm_title("Werewolves Team Chooser")
w = Button(top)
top.mainloop()
我相信你可以看到,GUI的代码非常不完整。有人可以告诉我如何在GUI中显示字段,并将它们附加到按钮?实际上,我正在寻找的是一个用于添加玩家的领域,以及一个用于设置狼人数量的领域;然后一个按钮获取该信息并决定团队 - 使用提供的方法。
非常感谢任何帮助。
奖励:将成品变成可执行文件会有多难,所以我的朋友也可以使用它?
非常感谢!
答案 0 :(得分:1)
您的按钮没有显示,因为您没有在其上调用包。基本上,您创建了一个按钮,但尚未将其添加到窗口中。您可以使用三种布局管理器来添加&#34;小部件&#34; (Tkinter在GUI中的名称)。这些是包,网格和地方。对于一个简单的窗口,例如你正在制作的窗口,包应该可以正常工作。当你做更大的后期项目时,网格成为一个非常有用的工具。在创建按钮后将w.pack()添加到代码中,您将看到该按钮没有名称。你可以通过添加text =&#34;一些文字&#34;来添加它。到构造函数中的参数。类似地,您可以使用callback = function向该按钮添加一个动作(注意缺少括号)并将其绑定到一个动作。您还可以创建&#34;字段&#34;类似于你制作按钮的方式。简单地使用Entry()代替并填充您需要的参数(我建议查找StringVar以获取有关检索输入的信息)。
从最终项目中制作一个exe文件太糟糕了。就个人而言,我喜欢使用PyInstaller,它使用你的脚本名称和一些参数,并为你创建整个事物。还有其他工具,如py2exe,可以做同样的事情。
祝你好运! (P.S.真棒游戏,希望它顺利!)