weitere befehle schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pineapple.x16
User
Beiträge: 38
Registriert: Donnerstag 4. Juni 2020, 20:55

Mittwoch 24. März 2021, 15:28

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


Benutzeravatar
__blackjack__
User
Beiträge: 8573
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mittwoch 24. März 2021, 16:09

@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.
“Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”
Pineapple.x16
User
Beiträge: 38
Registriert: Donnerstag 4. Juni 2020, 20:55

Donnerstag 25. März 2021, 15:06

Ja wie gesagt, ich kann kein bisschen Informatik...
Benutzeravatar
__blackjack__
User
Beiträge: 8573
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Donnerstag 25. März 2021, 15:44

@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!
“Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”
Pineapple.x16
User
Beiträge: 38
Registriert: Donnerstag 4. Juni 2020, 20:55

Freitag 26. März 2021, 11:58

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...
Pineapple.x16
User
Beiträge: 38
Registriert: Donnerstag 4. Juni 2020, 20:55

Freitag 26. März 2021, 16:46

Bitte... ich brauche das... ich würde nicht rum betteln, wenn ich das könnte...😔
Benutzeravatar
pillmuncher
User
Beiträge: 1257
Registriert: Samstag 21. März 2009, 22:59
Wohnort: München

Freitag 26. März 2021, 17:02

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.
In specifications, Murphy's Law supersedes Ohm's.
Pineapple.x16
User
Beiträge: 38
Registriert: Donnerstag 4. Juni 2020, 20:55

Freitag 26. März 2021, 17:12

Ich weiß ja nicht woran es liegt daher kann ich auch keine konkrete Fragen stellen..
Antworten