So habe ich ein kleines Spiel in Python geschrieben, wenn Sie meine vorherige Frage sah Sie wissen, es ist ein "Space Invaders" -Klon.random "ValueError: list.remove (x): x nicht in der Liste" Fehler in pygame
Es läuft also fast alles glatt, abgesehen von einem zufälligen Fehler, der hin und wieder herausspringt. Dies ist völlig zufällig, es kann vorkommen, nachdem einige Kugeln abgefeuert wurden, oder es kann überhaupt nicht vorkommen.
Ich habe diesen Code:
for bullet in bullets:
bullet.attack()
if bullet.posy<=-20:
bullet_draw=False
if bullet_draw==True:
bullet.draw()
for enemy in enemies:
if bullet.sprite.rect.colliderect(enemy.sprite.rect):
enemy.health-=1
bullets.remove(bullet)
bullet_draw=False
else:
bullet_draw=True
Manchmal es gibt mir die folgende Fehlermeldung.
Traceback (most recent call last):
File "\Programming\space invaders\space.py", line 280, in <module>
bullets.remove(bullet)
ValueError: list.remove(x): x not in list
Bitte beachten Sie, dass dieser Fehler völlig zufällig ist; auch wenn es nicht ist, kann ich seinen Ursprung nicht verfolgen. Irgendwelche Hilfe, wie man es beseitigt?
Im Allgemeinen ist es eine gute Methode, den Fehler zu finden und dann den Post-Mortem-Debugger zu verwenden ('import pdb; pdb.post_mortem()'). Während der Entwicklung habe ich normalerweise eine catch-all-try-except-Klausel um den Einstiegspunkt meines Programms herum, so dass ich selbst unvorhersehbare Probleme sofort debuggen kann. –