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