파이썬으로 작성된 작은 게임이 있습니다. 이전 질문을 본다면 "우주 침략자"클론입니다.random "ValueError : list.remove (x) : x 목록에 없음"파이 게임에서 오류가 발생했습니다.
잠시 동안 임의의 오류가 나타나는 것을 제외하고 거의 모든 것이 원활하게 실행됩니다. 이것은 완전히 무작위입니다. 일부 총알이 발사 된 후에 발생할 수 있으며, 전혀 발사되지 않을 수도 있습니다.
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
는 때때로 나에게 다음과 같은 오류를 제공합니다 :
나는이 코드를 가지고있다.
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
이 오류는 완전히 무작위입니다. 비록 그것이 아니더라도, 나는 그 기원을 추적 할 수 없다. 그것을 제거하는 방법에 어떤 도움?
일반적으로 오류를 포착하고 사후 디버거 ('import pdb; pdb.post_mortem()')를 사용하면 오류를 파악할 수 있습니다. 개발하는 동안 나는 일반적으로 프로그램의 진입 점 (entry point)에 대해 catch-all try-except 절을 사용하므로 예기치 않은 문제를 즉시 디버깅 할 수 있습니다. –