Ich sehe da ein kleines Problem (mal abgesehen davon dass man einfach direkt gegnerleben=0 setzen könnte):
Du ziehst faktisch einmal 20 ab von den anfänglich 100 Lebenspunkten.
Das heißt, am Ende vom Lied bzw. Programm ist gegnerleben=80, egal wie oft du das Programm ausführst.
Insofern wird deine while schleifen bedingung in der aktuellen Form auch nie erreicht.
2. punkt: warum while?
while macht hier keinen sinn.
Denn: Sagen wir mal gegnerleben wäre tatsächlich gleich 0.
was würde dann passieren?
Dann würde immer wieder dieser string auf der konsole gedruckt werden und das endlos bis dir eventuell der Computer abschmiert.
Denn es gibt derzeit keine veränderung innerhalb der whileschleife, die dazu führen würde dass die while bedingung irgendwann nicht mehr gilt.
Kurzum: vermutlich willst du die Zeile ja nur einmal ausgeben lassen, falls die Bedingung erfüllt ist.
Da tut es ein ganz einfaches if völlig
Ansonsten, kannst du wirklich gegnerleben=0 nutzen.
Oder du führst 5 mal deine Methode aus (weil 100-5*20=0 ist).
Deine Entscheidung