Spiel programmieren?
Ich will nicht meinen code hier eingeben ,vielleicht könnt ihr dennoch helfen. Ich schreibe das spiel Mastermind in Python folgendes ist immer die ausgabe:
Wilkommen bei Mastermind
Versuche, die die richtige Reihenfolge zu erraten.
Die Farben sind:['grün', 'rot', 'lila', 'schwarz']
Gebe die Richtige Reihenfolge ein (Trenne mit Komma): grün,rot,lila,schwarz
Herzlichen Glückwunsch! Du hast den Code erraten
Process finished with exit code 0
wie man sehen kann ist die richtige reihenfolge immer die selbe ,wie die gegebne . Keine Ahnung was los ist vor paar stunden lief alles normal ,vielleicht hab ich irgednwas verändert ohne auf den programm namen zu schauen.
Auf was muss ich schauen um den fehler zu finden. Nicht maln Chat GPT war hilfreich
5 Antworten
Was Du nun lernen kannst, ist systematische Fehlersuche, auch debugging genannt.
Eine sehr hilfreiche Methode dafür ist diese: Lass Dein Programm selbst Auskunft geben, was los ist. Baue dazu an einigen Stellen print-Anweisungen ein, mit denen Dein Programm Dir sagt: "Jetzt bin ich bei A", "Jetzt bin ich bei B", usw.
Hier ist ein Beispiel für diese Methode (im Abschnitt "Fehlersuche"): https://www.inf-schule.de/imperative-programmierung/python/konzepte/fehlersuche/beispiel_ampelsimulation
Du kannst dafür auch eine Funktion verwenden, die immer die Zeilennummer der Stelle sagt, an der man sie gerade aufruft.
Du sagst zu Beginn:
import inspect
und dann an allen Stellen, an denen es interessant ist:
print( 'Bin bei Zeile Nr',
inspect.getframeinfo(inspect.currentframe()).lineno)
Genauer beschrieben wird das hier: https://python-forum.io/thread-2210.html
Ich will nicht meinen code hier eingeben
...
wie man sehen kann ist die richtige reihenfolge immer die selbe
Nein, das kann man nicht sehen, weil Du keinen Code zeigst.
Keine Ahnung was los ist vor paar stunden lief alles normal ,vielleicht hab ich irgednwas verändert ohne auf den programm namen zu schauen.
Ohne Deinen Code zu kennen, kann das niemand wissen...
Auf was muss ich schauen um den fehler zu finden.
Auf den Fehler.
Nicht maln Chat GPT war hilfreich
Das ist kein Wunder. ChatGPT ist ein Chatbot, kein Debugger.
Keine Ahnung was los ist vor paar stunden lief alles normal
cool ... und ich schaue in meine magische Glaskugel um Deinen Code in verschieden von Dir nicht aufgeführten Vergangenheiten zu vergleichen.
ich bin zwar kein Pythoprogrammierer, aber die Sache ist doch völlig trivial.
- definiere die vergebenen Farben in einer Liste
- Mische den Inhalt der Liste shuffle()
- füge die List zu einem String zusammen (hier kommagetrennt)
- vergleiche den String mit der Eingabe
Ich spare mir mal den Inputschnickschnak und verwende stattdessen einen statischen String zum probieren:
import random
colors = ["rot", "grün", "schwarz", "lila"]
myInput = "schwarz,lila,rot,grün" #ich tu mal als wäre das ein Engabe mit input()
random.shuffle(colors)
rndColorsString = ','.join(colors)
if myInput.lower() == rndColorsString:
print("richtig")
else:
print("falsch")
print ("your Input : {}".format(myInput))
print ("computed Order : {}".format(rndColorsString))
Schau auf die Variablen die du für das Ergebnis nutzt und ob diese identisch sind mit den Variablen für die gegebenen. Gibt es eine Zuweisung von der einen zur anderen?
Baue Kontrollausgaben ein oder nutze Breakpoints zum debuggen.
Viel mehr lässt sich ohne den Code nicht sagen
versuche die Fehler zu verstehen. Das hilft dir dann für zukünftige Fehler weiter.