このプログラムを実行するたびに、次のエラーが発生します。
ValueError: list.remove(x): x not in list
ボルトが当たるたびに、エイリアン 1 体のヘルスを下げようとしています。ヘルスが の場合、その 1 つのエイリアンも破壊する必要があります<= 0
。同様に、ボルトも破壊されます。これが私のコードです:
def manage_collide(bolts, aliens):
# Check if a bolt collides with any alien(s)
for b in bolts:
for a in aliens:
if b['rect'].colliderect(a['rect']):
for a in aliens:
a['health'] -= 1
bolts.remove(b)
if a['health'] == 0:
aliens.remove(a)
# Return bolts, aliens dictionaries
return bolts, aliens
これValueError
は回線上で発生しますaliens.remove(a)
。明確にするために、aliens
とbolts
は両方とも辞書のリストです。
私は何を間違っていますか?