尝试为我的NIM7程序设置一个tkintergui

2024-10-17 06:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的NIM7程序设置一个tkintergui。你可以和电脑对抗,也可以和其他人对抗。我有两个选项开始(按钮,你可以点击启动一个选项电脑对球员,球员对球员),但我不知道如何从那里去。你知道吗

我想做一个程序,在你选择你的游戏设置后,它会打开一个跟踪屏幕,屏幕上有一个硬币计数器,两个选项按钮,拿1个硬币或拿2个硬币,并注明该轮到谁了。你知道吗

有谁能帮我理解怎么去那儿吗?你知道吗

我现在的代码是:


import random
import tkinter

def initialiseer():
global start_venster
# maakt startvenster Tkinter aan
start_venster = tkinter.Tk()
# maakt de widgets voor Tkinter
venster_titel = tkinter.Label(start_venster, text='Welkom bij het NIM spel!')
venster_titel.pack()  # zet titel automatisch in venster
venster_resultaat = tkinter.Label(start_venster,
                                  text='Klik optie 1 om tegen elkaar te spelen. \n Optie 2 om tegen de computer te spelen!')
venster_resultaat.pack()  # zet titel automatisch in venster
btn_optie_1 = tkinter.Button(start_venster, text='Optie 1', fg='red',
                             command=speel_tegen_elkaar, )  # maakt knop en laat stoppen
btn_optie_1.pack(side='left')
btn_optie_2 = tkinter.Button(start_venster, text='Optie 2', fg='green',
                             command=speel_tegen_computer)  # maakt knop en laat stoppen
btn_optie_2.pack(side='right')
# start de loop
start_venster.mainloop()

def speel_tegen_elkaar():

speler_venster = tkinter.Tk() # maakt speler venster aan

# kiest een willekeurige speler
beginnende_speler = random.choice([1,2])
speler = beginnende_speler

# geeft aan met hoeveel munten wordt gestart
aantal_munten = 7 # hoeveelheid stenen
venster_munten = tkinter.Label(start_venster, text= 'Het aantal munten is op dit moment: ' + str(aantal_munten)) # geeft label met aantal munten
venster_munten.pack()

while True:
    # Laat de speler een legale zet doen
    speler_venster_titel = tkinter.Label(speler_venster, text= 'Speler ' + str(speler) + ' is aan de beurt!') # geef label met speler
    speler_venster_titel.pack()
    while True:
        zet = int(input('Hoeveel munten pak je?: '))
        if zet in [1,2] and zet <= aantal_munten:
            break
        print(str(zet) +' mag niet! Kies een zet tussen de 1 en 2!')

    #haalt aantal munten weg van de zet
    aantal_munten = aantal_munten - zet

    #laat het aantal stenen zien
    print('Het aantal munten is op dit moment: ' + str(aantal_munten))

    # controleert wie gewonnen/verloren heeft
    if aantal_munten == 0:
        print('Speler ' + str(speler) + ' wint!' )
        break

    # wisselt tussen de spelers 1 en 2 of 2 en 1 en daarna terug naar legale zet doen
    if speler == 1:
        speler = 2
    else:
        speler = 1

print('Spel afgelopen!')

def speel_tegen_computer():
# kiest een willekeurige speler
beginnende_speler = random.choice(['Speler', 'Computer'])
speler = beginnende_speler

# geeft aan met hoeveel munten wordt gestart
aantal_munten = 7 # hoeveelheid stenen
print('Het aantal munten is op dit moment: ' + str(aantal_munten))

while True:
    # Laat de speler een legale zet doen en de computer automatisch de beste zet kiezen
    print (speler)
    while True:
        if speler == 'Speler':
            zet = int(input('Hoeveel munten pak je?: '))
            zet in [1,2] and zet <= aantal_munten
            aantal_munten = aantal_munten - zet
            break
        elif speler == 'Computer' and aantal_munten == 7:
            print('Hoeveel munten pak je: 1')
            aantal_munten = aantal_munten - 1
            break
        elif speler == 'Computer' and aantal_munten == 6:
            print('Hoeveel munten pak je: 1')
            aantal_munten = aantal_munten - 1
            break
        elif speler == 'Computer' and aantal_munten == 5:
            print('Hoeveel munten pak je: 2')
            aantal_munten = aantal_munten - 2
            break
        elif speler == 'Computer' and aantal_munten == 4:
            print('Hoeveel munten pak je: 1')
            aantal_munten = aantal_munten - 1
            break
        elif speler == 'Computer' and aantal_munten == 3:
            print('Hoeveel munten pak je: 1')
            aantal_munten = aantal_munten - 1
            break
        elif speler == 'Computer' and aantal_munten == 2:
            print('Hoeveel munten pak je: 2')
            aantal_munten = aantal_munten - 2
            break
        elif speler == 'Computer' and aantal_munten == 1:
            print('Hoeveel munten pak je: 1')
            aantal_munten = aantal_munten - 1
            break
        print(str(zet) +' mag niet! Kies een zet tussen de 1 en 2!')

    #laat het aantal stenen zien
    print('Het aantal munten is op dit moment: ' + str(aantal_munten))

    # controleert wie gewonnen/verloren heeft
    if aantal_munten == 0:
        print ((speler) + ' wint!' )
        break

    # wisselt tussen de spelers 1 en 2 of 2 en 1 en daarna terug naar legale zet doen
    if speler == 'Speler':
        speler = 'Computer'
    else:
        speler = 'Speler'

print('Spel afgelopen!')



initialiseer()

Tags: andtkinterdestartenprintbreakje