我正在尝试让CvPRandomSpeler
函数在aantal_munten
转弯时自动从Computer
的值减去2并且值为2或5。 1当值为1到7时(2.5除外)并且它是Computer
转弯。
减法后,它应自动返回Speler
。
我只复制了相关代码,因此缺少很多部分。
谢谢!
import tkinter
import random
from time import sleep
def CvPRandomSpeler():
'''
Deze functie laat binnen het speler tegen computer optie de computer en speler wisselen nadat er een munt gepakt is.
Daarnaast wordt er een update aangevraagd voor het label beurt_speler per wisseling van speler/computer.
'''
global speler_computer
global aantal_munten
if speler_computer == 'Speler':
speler_computer = 'Computer'
aantal_munten in [2,5]
CvPMunt2()
elif speler_computer == 'Speler':
speler_computer = 'Computer'
aantal_munten in [1,3,4,6,7]
CvPMunt1()
else:
speler_computer = 'Speler'
welke_beurt.config(text= speler_computer + ' is aan de beurt!')
sleep(.5)
return speler_computer
def CvPMunt1():
'''
Deze funtie wordt aangeroepen binnen de speler tegen computer optie als een speler de knop 1 munt indrukt.
De functie trekt 2 van het totaal aantal munten af wat over is, en geeft een update aan het label wat het totaal aantal munten bijhoudt.
'''
global aantal_munten
eenMunt = 1
aantal_munten -= eenMunt
munten.configure(text='Er zijn nog ' + (str(aantal_munten)) + ' aantal munten over, hoeveel pak je er?')
if aantal_munten <= 0:
CvPtoonEindscherm()
else:
# change player
CvPRandomSpeler()
def CvPMunt2():
'''
Deze funtie wordt aangeroepen binnen de speler tegen speler optie als een computer de knop 2 munten indrukt.
De functie trekt 2 van het totaal aantal munten af wat over is, en geeft een update aan het label wat het totaal aantal munten bijhoudt.
'''
global aantal_munten
tweeMunt = 2
if aantal_munten >= 2:
aantal_munten -= tweeMunt
munten.configure(text='Er zijn nog ' + (str(aantal_munten)) + ' aantal munten over, hoeveel pak je er?')
CvPRandomSpeler()
elif aantal_munten == 1:
munten.configure(text='Er is nog ' + (str(aantal_munten)) + ' munt, pak één munt!')
elif aantal_munten <= 0:
CvPtoonEindscherm()
nim_spel = tkinter.Tk()#maakt Tkinter venster aan
global aantal_munten #zet een global aantal_munten op welke gebruikt wordt in de functies en labels
aantal_munten = 7
global speler_computer #zet een global voor de speler/computer op welke gebruikt wordt in de functies en labels
speler_computer = random.choice(['Speler', 'Computer']) #zorgt ervoor dat er een willekeurige speler/computer start
computerscherm = tkinter.Frame(master=nim_spel) #maakt het speler tegen computer scherm, geeft een label met het overige aantal munten en of de speler aan de beurt is, ook twee knoppen die elk één of twee munten van de overige munten af halen
computerscherm.pack()
welke_beurt = tkinter.Label(computerscherm, text= (speler_computer) + ' is aan de beurt')
welke_beurt.pack()
munten = tkinter.Label(computerscherm, text='Er zijn nog ' + str(aantal_munten) + ' aantal munten over')
munten.pack()
CvP_pak_1_munt = tkinter.Button(computerscherm, text='1 munt', fg = 'blue', command=CvPMunt1)
CvP_pak_1_munt.pack(side = 'left')
CvP_pak_2_munt = tkinter.Button(computerscherm, text='2 munten', fg = 'blue', command=CvPMunt2)
CvP_pak_2_munt.pack(side = 'right')
toonStartscherm()
nim_spel.mainloop()
答案 0 :(得分:0)
行aantal_munten in [2,5]
和aantal_munten in [1,3,4,6,7]
不执行任何操作,此处:它们评估为True或False但代码对结果不执行任何操作。如果您希望他们对这些语句执行某些操作,则需要在if语句或类似语句中使用它们。