Seite 1 von 1

weitere befehle schreiben

Verfasst: Mittwoch 24. März 2021, 15:28
von Pineapple.x16
Wenn der Spieler den "fertig"-Button betätigt oder nach dem dritten Wurf, soll das Ergebnis des Wurfs ausgewertet werden.
und wie implementiere ich eine Funktion auswertung, die dem Spieler das Ergebnis seines Wurfs anzeigt, also Kniffel, Full House, eine Straße oder einen Pasch. Dieses Ergebnis soll dann im Label unterhalb des Wortes "Würfelergebnis" stehen... :(


ich bin halt wirklich eine 0 in informatik… und verstehe auch nicht mehr was sache ist… mein lehrer hat nie erklärt, was was ist usw… wir mussten einfach die aufgaben machen und deshalb bin ich jetzt mehr als aufgeschmissen… bitte helft mir… :( :( :(
import random
from tkinter import *

def zuruecksetzen():
checkbutton0.config(state='active')
checkbutton1.config(state='active')
checkbutton2.config(state='active')
checkbutton3.config(state='active')
checkbutton4.config(state='active')
labelW1.config(text=str(random.randint(1,6)))
labelW2.config(text=str(random.randint(1,6)))
labelW3.config(text=str(random.randint(1,6)))
labelW4.config(text=str(random.randint(1,6)))
labelW5.config(text=str(random.randint(1,6)))
labelWurf.config(text="1. Wurf")
labelAuswertung.config(text=" ")
labelEintragen.config(text=" ")
summieren()

def auswahlClick():
buttonWuerfeln.config(state='active')

def buttonWuerfelnClick():
if wert0.get() == 1:
labelW1.config(text=str(random.randint(1,6)))
else:
checkbutton0.config(state='disabled')
if wert1.get() == 1:
labelW2.config(text=str(random.randint(1,6)))
else:
checkbutton1.config(state='disabled')
if wert2.get() == 1:
labelW3.config(text=str(random.randint(1,6)))
else:
checkbutton2.config(state='disabled')
if wert3.get() == 1:
labelW4.config(text=str(random.randint(1,6)))
else:
checkbutton3.config(state='disabled')
if wert4.get() == 1:
labelW5.config(text=str(random.randint(1,6)))
else:
checkbutton4.config(state='disabled')
checkbutton0.deselect()
checkbutton1.deselect()
checkbutton2.deselect()
checkbutton3.deselect()
checkbutton4.deselect()
buttonWuerfeln.config(state='disabled')
if labelWurf.cget("text")=="1. Wurf":
labelWurf.config(text="2. Wurf")
elif labelWurf.cget("text")=="2. Wurf":
labelWurf.config(text="3. Wurf")
checkbutton0.config(state='disabled')
checkbutton1.config(state='disabled')
checkbutton2.config(state='disabled')
checkbutton3.config(state='disabled')
checkbutton4.config(state='disabled')

def buttonFertigClick():
pass


# Fenster
tkFenster = Tk()
tkFenster.title('Kniffel')
tkFenster.geometry('220x390')

# Frames
frameWuerfel = Frame(master=tkFenster, bg="white")
frameWuerfel.place(x=10, y=10, width=210, height=80)
frameAuswahl = Frame(master=tkFenster, bg="white")
frameAuswahl.place(x=10, y=100, width=210, height=170)
frameAuswertung = Frame(master=tkFenster, bg="white")
frameAuswertung.place(x=10, y=280, width=210, height=100)


# Label
labelWurf = Label (master=frameWuerfel, text="1. Wurf")
labelWurf.place(x=10, y=10, width=100, height=20)
labelW1 = Label(master=frameWuerfel, bg="gray", text=str(random.randint(1,6)))
labelW1.place(x=10, y=40, width=30, height=30)
labelW2 = Label(master=frameWuerfel, bg="gray", text=str(random.randint(1,6)))
labelW2.place(x=50, y=40, width=30, height=30)
labelW3 = Label(master=frameWuerfel, bg="gray", text=str(random.randint(1,6)))
labelW3.place(x=90, y=40, width=30, height=30)
labelW4 = Label(master=frameWuerfel, bg="gray", text=str(random.randint(1,6)))
labelW4.place(x=130, y=40, width=30, height=30)
labelW5 = Label(master=frameWuerfel, bg="gray", text=str(random.randint(1,6)))
labelW5.place(x=170, y=40, width=30, height=30)

labelFrage = Label (master=frameAuswahl, text="Welche Würfel sollen\n neu gewürfel werden?")
labelFrage.place(x=10, y=10, width=190, height=50)

labelErgebnis = Label(master=frameAuswertung, text="Würfelergebnis:")
labelErgebnis.place(x=10, y=10, width=190, height=20)
labelAuswertung = Label(master=frameAuswertung, text="")
labelAuswertung.place(x=10, y=30, width=190, height=20)
labelEintragen = Label(master=frameAuswertung, text="")
labelEintragen.place(x=10, y=50, width=190, height=40)



# Kontrollvariablen
wert0 = IntVar()
wert1 = IntVar()
wert2 = IntVar()
wert3 = IntVar()
wert4 = IntVar()

# Checkbutton
checkbutton0 = Checkbutton(master=frameAuswahl, bg="white", anchor='w', offvalue=0, onvalue=1, variable=wert0, command=auswahlClick)
checkbutton0.place(x=15, y=65, width=20, height=20)
checkbutton1 = Checkbutton(master=frameAuswahl, bg="white", anchor='w', offvalue=0, onvalue=1, variable=wert1, command=auswahlClick)
checkbutton1.place(x=55, y=65, width=20, height=20)
checkbutton2 = Checkbutton(master=frameAuswahl, bg="white", anchor='w', offvalue=0, onvalue=1, variable=wert2, command=auswahlClick)
checkbutton2.place(x=95, y=65, width=20, height=20)
checkbutton3 = Checkbutton(master=frameAuswahl, bg="white", anchor='w', offvalue=0, onvalue=1, variable=wert3, command=auswahlClick)
checkbutton3.place(x=135, y=65, width=20, height=20)
checkbutton4 = Checkbutton(master=frameAuswahl, bg="white", anchor='w', offvalue=0, onvalue=1, variable=wert4, command=auswahlClick)
checkbutton4.place(x=175, y=65, width=20, height=20)

# Button
buttonWuerfeln = Button (master=frameAuswahl, text="neu würfeln", command=buttonWuerfelnClick, state='disabled')
buttonWuerfeln.place(x=10, y=95, width=190, height=30)
buttonFertig = Button (master=frameAuswahl, text="fertig", command=buttonFertigClick)
buttonFertig.place(x=10, y=130, width=190, height=30)

# Aktivierung des Fensters
tkFenster.mainloop()



Re: weitere befehle schreiben

Verfasst: Mittwoch 24. März 2021, 16:09
von __blackjack__
@Pineapple.x16: Ich denke nicht, dass man Dir dabei hier im Forum helfen kann. Das ist zwei bis drei Nummern zu gross für Deinen Kenntnisstand. Dir fehlen Grundlagen die man vor objektorientierter Programmierung (OOP) drauf haben sollte und für GUI-Programme braucht man dann auch wirklich OOP. Hier jetzt *wirklich* denn Du musst Dir Zustand über Rückrufe von der GUI-Hauptschleife hinaus merken. Und davon dann auch noch so viel, dass man das echt nicht mehr mit `partial()` und `tkinter.Variable`-Objekten verständlich und nachvollziehbar hin bekommt.

Und das Grundgerüst von dem Code ist ja an vielen Stellen schon nicht gut. Es wurden schon mehrfach Sachen wie `place()`, globale Variablen, und Listen statt nummerierter Namen angesprochen, woran sich auch nichts geändert hat. Das ist auch immer noch in dem Code.

Du solltest Dir lokal Nachhilfe suchen die sich intensiv mit Dir und dem Thema auseinander setzt.

Re: weitere befehle schreiben

Verfasst: Donnerstag 25. März 2021, 15:06
von Pineapple.x16
Ja wie gesagt, ich kann kein bisschen Informatik...

Re: weitere befehle schreiben

Verfasst: Donnerstag 25. März 2021, 15:44
von __blackjack__
@Pineapple.x16: Deswegen ja der letzte Satz in meinem letzten Beitrag. Anders wird das nicht gehen. Denn selbst wenn Dir jemand eine Lösung liefert — Du wirst die nicht verstehen, und das wird Dein(e) Lehrer(in) ziemlich sicher bemerken, also hilft nicht einmal so ein Betrugsversuch weiter.

Du könntest mit dem Problem auch an die Lehrkraft herantreten und fragen was Du/Ihr da machen könnt. Also beispielsweise was Du machen kannst/musst um welche Note am Ende zu erreichen. Vielleicht kannst Du ja beispielsweise die GUI weglassen und Kniffel als linear ablaufende Konsolenanwendung programmieren und damit zwar keine gute Note bekommen, aber eine Chance haben das Fach/den Kurs zu bestehen.

Im schlimmsten Fall kämt ihr gemeinsam zu dem Schluss, dass Du zu weit hinterher hängst und es nicht möglich ist den Stoff noch sinnvoll nachzuarbeiten. Dann hättest Du immerhin freie Zeit gewonnen, die Du in andere Fächer investieren kannst. Aber Achtung: Diese Entscheidung solltest Du nicht ohne Nachfrage/Beratung einfach selber fällen weil Du gerade frustriert bist!

Re: weitere befehle schreiben

Verfasst: Freitag 26. März 2021, 11:58
von Pineapple.x16
Ich bin nicht die einzige person, die nicht mehr hinterher kommt.. wir benutzen im GK seiten eines LKs, ist ja dann wohl kein wunder, dass Leute wie ich, das nicht verstehen...

Re: weitere befehle schreiben

Verfasst: Freitag 26. März 2021, 16:46
von Pineapple.x16
Bitte... ich brauche das... ich würde nicht rum betteln, wenn ich das könnte...😔

Re: weitere befehle schreiben

Verfasst: Freitag 26. März 2021, 17:02
von pillmuncher
Pineapple.x16 hat geschrieben: Freitag 26. März 2021, 16:46 Bitte... ich brauche das... ich würde nicht rum betteln, wenn ich das könnte...😔
Du musst es halt lernen. Jeder Programmierer hat irgendwann einmal noch nicht programmieren können, sogar ich. Dass dein Lehrer möglicherweise nichts taugt ist keine Entschuldigung dafür, dass du es dir nicht selber beibringst. Arbeite mit deinen Mitschülern zusammen. Arbeite das offizielle Tutorial durch. Lies die Dokumentation. Probier Sachen aus, erst sehr einfache, dann immer kompliziertere. Vesuche alles immer so klein und einfach zu halten, wie möglich, damit du auch verstehst, was du da tust. Wenn du konkrete Fragen hast wird dir hier geholfen, sofern ersichtlich ist, dass du dir Mühe gibst und selber Zeug ausprobierst. Wir sind aber kein kostenloser Hausaufgabenservice.

Re: weitere befehle schreiben

Verfasst: Freitag 26. März 2021, 17:12
von Pineapple.x16
Ich weiß ja nicht woran es liegt daher kann ich auch keine konkrete Fragen stellen..