Title: Spiellogik kapseln

### Spiellogik kapseln

Eine Klasse kann Spielzustand und Regeln zusammenhalten: Punkte, Level, Kollisionen oder Siegbedingungen.

class Game:
def __init__(self):
self.score = 0
self.running = True

def collect_coin(self):
self.score += 1
if self.score >= 3:
self.running = False

game = Game()
for _ in range(3):
game.collect_coin()
print(game.score, game.running)

### Im Spiel anwenden

Hier wird OOP direkt als Spielstruktur sichtbar: Welt, Actors, Attribute,
Methoden und Ereignisse gehören zusammen.

import miniworlds

world = miniworlds.World(500, 300)

class Spieler(miniworlds.Actor):
def on_setup(self):
self.speed = 10

def on_key_down_right(self):
self.x = self.x + self.speed

spieler = Spieler((80, 150))
ziel = miniworlds.Circle((420, 150), 24)

world.run()

Trenne Spiellogik und Darstellung: Ergänze `hit_enemy(damage)`. Die Methode
zieht Trefferpunkte ab, lässt sie aber nie unter 0 fallen. Sie gibt zurück, ob
der Gegner besiegt ist. Diese Logik kann ohne miniworlds getestet werden.

class Game:
def __init__(self, enemy_health):
self.enemy_health = enemy_health

def hit_enemy(self, damage):
pass

game = Game(int(input()))
for value in input().split():
print(game.hit_enemy(int(value)), game.enemy_health)

False 7

False 3

True 0

False 5