Open plusben opened 7 months ago
(Betroffen: game5.py)
mypy game5.py liefert nichts auffälliges. (Liefert gar keinen output)
(Ich habe ein generelles Interesse bezüglich Testmethode "Statische Analyse", und versuche, dieses nun auch bei Python in Betrieb zu nehmen. Ich werde mir die Hilfe zum checker mypy mal durchlesen.)
Nach dem Hinzufügen von zahlreichen type hints:
$ mypy --strict game5.py
game5.py:235: error: Argument 2 to "move_hamster" has incompatible type "Korn | None"; expected "Korn" [arg-type]
Found 1 error in 1 file (checked 1 source file)
also finde_naechstes_korn() könnte None zurückgeben!? Ich habe mal den debugger bemüht -> nein, ist nicht der Fall. Ergebnis: unklar (Typisch für statische Analyse: Viel Aufwand, unklares Ergebnis)
kannst du auch die game4.py mal checken? da kommt auch im Log der Fehler.
game4.py: Im Wesentlichen das gleiche Ergebnis. (Noch ein paar mehr Warnungen, das sind aber lösbare Konfigurationsprobleme)
Ich habe mir pylint installiert, laufenlassen und mir die Warnungen angeschaut. Ich habe aber auch keinen Fix gefunden.
Hier sind zumindest die Auffälligkeiten:
game4: def move(self, level, koerner): das Argument koerner wird ja gar nicht benutzt.
game5: move-hamster(,) die lokalen Variablen start und end werden berechnet, aber mit den Werten wird dann nichts angefangen.
In unserem pygame-basierten Spiel haben wir ein Problem, bei dem der Hamster korrekt im Level erscheint, sich aber nicht wie erwartet bewegt. Anstatt sich frei im Level zu bewegen, scheint der Hamster sofort mit einem oder mehreren Hindernissen zu kollidieren und bleibt dann an Ort und Stelle. Schritte zur Reproduktion:
Erwartetes Verhalten: Der Hamster sollte sich frei im Level bewegen können, ohne sofort mit Hindernissen zu kollidieren.
Tatsächliches Verhalten: Sobald das Level geladen ist, kollidiert der Hamster sofort mit einem Hindernis und bewegt sich nicht mehr, unabhängig von den Benutzereingaben.
Zusätzliche Informationen:
Umgebung: