在玩家转身后自动从值中减去

时间:2018-01-14 17:53:50

标签: python-3.x tkinter

我正在尝试让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()

1 个答案:

答案 0 :(得分:0)

aantal_munten in [2,5]aantal_munten in [1,3,4,6,7]不执行任何操作,此处:它们评估为True或False但代码对结果不执行任何操作。如果您希望他们对这些语句执行某些操作,则需要在if语句或类似语句中使用它们。