Spiel programmieren?

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.

Woher ich das weiß:Studium / Ausbildung – Informatik Studium.
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

Woher ich das weiß:Berufserfahrung – Software Entwickler

versuche die Fehler zu verstehen. Das hilft dir dann für zukünftige Fehler weiter.