Code: Alles auswählen
from random import randint
from tkinter import *
#Definitionen
def Button_Einsatz_Click():
# Verwaltung der Daten
ButtonEinsatz.config(state = DISABLED)
radiobutton1.config(state = NORMAL)
radiobutton2.config(state = NORMAL)
radiobutton3.config(state = NORMAL)
radiobutton4.config(state = NORMAL)
radiobutton5.config(state = NORMAL)
radiobutton6.config(state = NORMAL)
global konto
konto = int(labelKonto.cget('text'))
# Verarbeitung der Daten
konto = konto - 1
# Anzeige der Daten
labelKonto.config(text=str(konto))
def Button_Würfel_Click():
# Verwaltung der Daten
ButtonGewinn.config(state = NORMAL)
ButtonWürfel.config(state = DISABLED)
global Würfel1
global Würfel2
global Würfel3
Würfel1 = int(label1Würfel.cget('text'))
Würfel2 = int(label2Würfel.cget('text'))
Würfel3 = int(label3Würfel.cget('text'))
# Verarbeitung der Daten
Würfel1 = randint(1, 6)
Würfel2 = randint(1, 6)
Würfel3 = randint(1, 6)
# Anzeige der Daten
label1Würfel.config(text=str(Würfel1))
label2Würfel.config(text=str(Würfel2))
label3Würfel.config(text=str(Würfel3))
def Button_Gewinn_Click():
#Verwaltung der Daten
ButtonEinsatz.config(state = NORMAL)
ButtonGewinn.config(state = DISABLED)
global labelAusgewaehlteZahl1
labelAusgewaehlteZahl1 = labelAusgewaehlteZahl.cget("text")
#Verarbeitung der Daten
global konto
global Würfel1
global Würfel2
global Würfel3
if int(labelAusgewaehlteZahl1) == int(Würfel1) and int(labelAusgewaehlteZahl1) == int(Würfel2) and int(labelAusgewaehlteZahl1) == int(Würfel3):
konto = konto + 3
print(konto, "der Gewinn ist:3")
elif int(labelAusgewaehlteZahl1) == int(Würfel1) and int(labelAusgewaehlteZahl1) == int(Würfel2) or int(labelAusgewaehlteZahl1) == int(Würfel1) and int(labelAusgewaehlteZahl1) == int(Würfel3) or int(labelAusgewaehlteZahl1) == int(Würfel2) and int(labelAusgewaehlteZahl1) == int(Würfel3):
konto = konto + 2
print(konto, "der Gewinn ist:2")
elif int(labelAusgewaehlteZahl1) == int(Würfel1) or int(labelAusgewaehlteZahl1) == int(Würfel2) or int(labelAusgewaehlteZahl1) == int(Würfel3):
konto = konto + 1
print(konto, "der Gewinn ist:1")
#Anzeige der Daten
labelKonto.config(text=str(konto))
def Radiobutton_Click():
# Verwaltung der Daten
ButtonWürfel.config(state = NORMAL)
radiobutton1.config(state = DISABLED)
radiobutton2.config(state = DISABLED)
radiobutton3.config(state = DISABLED)
radiobutton4.config(state = DISABLED)
radiobutton5.config(state = DISABLED)
radiobutton6.config(state = DISABLED)
zahl = spielzahl.get()
# Anzeige der Daten
labelAusgewaehlteZahl.config(text=str(zahl))
#------------------------------------------------------------------
#Die Grafik
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title("Test")
tkFenster.geometry('800x500')
# Label mit Gesamtüberschrift
labelGesamtüberschrift = Label(master=tkFenster,
text="chuck a luck",
background="#E6E6FA")
labelGesamtüberschrift.place(x=0, y=0, width=800, height=30)
# Label mit Überschrift für das Konto
labelUeberschriftKonto = Label(master=tkFenster,
text="Konto",
background="#FFCFC9")
labelUeberschriftKonto.place(x=10, y=40, width=100, height=50)
# Label für den Kontostand
labelKonto = Label(master=tkFenster,
text="100",
background="#FFCFC9")
labelKonto.place(x=28, y=110, width=60, height=60)
# Label mit der Überschrift für die Würfel
labelUeberschriftWürfel = Label(master=tkFenster,
text="Würfel",
background="#FBD975")
labelUeberschriftWürfel.place(x=550, y=40, width=200, height=50)
# Label für den 1Würfel
label1Würfel = Label(master=tkFenster,
text="1",
background="#FBD975")
label1Würfel.place(x=550, y=110, width=60, height=60)
# Label für den 2Würfel
label2Würfel = Label(master=tkFenster,
text="2",
background="#FBD975")
label2Würfel.place(x=620, y=110, width=60, height=60)
# Label für den 3Würfel
label3Würfel = Label(master=tkFenster,
text="3",
background="#FBD975")
label3Würfel.place(x=690, y=110, width=60, height=60)
# Button zum Auswerten
ButtonEinsatz = Button(master=tkFenster,
text="Einsatz zahlen",
command=Button_Einsatz_Click)
ButtonEinsatz.place(x=10, y=180, width=100, height=20)
ButtonEinsatz.config(state = NORMAL)
#Button zum Würfel werfen
ButtonWürfel = Button(master=tkFenster,
text="Würfel werfen",
command=Button_Würfel_Click)
ButtonWürfel.config(state = DISABLED)
ButtonWürfel.place(x=600, y=180, width=100, height=20)
#Label mit Überschrift für die Zahl
labelUeberschriftZahl = Label(master=tkFenster,
text="Zahl",
background="#D5E88F")
labelUeberschriftZahl.place(x=200, y=40, width=300, height=50)
# Label mit ausgewählter Zahl
labelAusgewaehlteZahl = Label(master=tkFenster,
text="",
background="white")
labelAusgewaehlteZahl.place(x=335, y=145, width=30, height=18)
# Radiobutton für die Zahl
spielzahl = IntVar()
radiobutton1 = Radiobutton(master=tkFenster,
text='1',
value=1,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton1.config(state = DISABLED)
radiobutton1.place(x=200, y=100, width=30, height=18)
radiobutton2 = Radiobutton(master=tkFenster,
text='2',
value=2,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton2.config(state = DISABLED)
radiobutton2.place(x=250, y=100, width=30, height=18)
radiobutton3 = Radiobutton(master=tkFenster,
text='3',
value=3,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton3.config(state = DISABLED)
radiobutton3.place(x=300, y=100, width=30, height=18)
radiobutton4 = Radiobutton(master=tkFenster,
text='4',
value=4,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton4.config(state = DISABLED)
radiobutton4.place(x=350, y=100, width=30, height=18)
radiobutton5 = Radiobutton(master=tkFenster,
text='5',
value=5,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton5.config(state = DISABLED)
radiobutton5.place(x=400, y=100, width=30, height=18)
radiobutton6 = Radiobutton(master=tkFenster,
text='6',
value=6,
variable=spielzahl,
command=Radiobutton_Click)
radiobutton6.config(state = DISABLED)
radiobutton6.place(x=450, y=100, width=30, height=18)
#Button für Gewinn auszahlen
ButtonGewinn = Button(master=tkFenster,
text="Gewinn auszahlen",
command=Button_Gewinn_Click)
ButtonGewinn.config(state = DISABLED)
ButtonGewinn.place(x=300, y=180, width=100, height=20)
# Aktivierung des Fensters
tkFenster.mainloop()
Das Programm funktioniert soweit ganz gut doch wir bekommen die Einteilung der GUI und der Spiellogik in einer Klassenstruktur nicht hin. Wir bitten um Hilfe!Bewertet werden die folgenden Aspekte:
1. Funktioniert das Spiel? (Chuck-a-luck oder eine eigene Entwicklung!)
2. Reagiert die GUI auf Klicks/Eingaben? (Verändert sich etwas?)
3. Gibt es eine saubere Trennung zwischen Spielelogik und GUI-Funktionen?
4. Wurde eine zweckmäßige, einfache Klassenstruktur verwendet?