尝试为我的NIM7程序设置Tkinter GUI

时间:2017-11-29 11:54:58

标签: python tkinter pycharm

我正在尝试为我的NIM7程序设置Tkinter GUI。你可以在哪里对抗电脑或互相对抗。我有两个选项可以开始(按钮可以点击启动计算机与播放器,播放器与播放器之间的选项),但我不知道如何从那里开始。

我想制作一个程序,在您选择游戏设置后,它会打开一个带有剩余硬币计数器的跟进屏幕,两个选项按钮需要1个硬币,或者带2个硬币和一个注释为谁&# 39;转过来吧。

有人能帮助我了解如何到达那里吗?

我现在的代码:

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()

0 个答案:

没有答案