DOOM

Aufgabe

In dieser Aufgaben sollen Sie ihrem Traum, ein Gamedeveloper zu werden, einen Schritt näher kommen!

1.

Erstellen Sie eine Klasse Player. Diese soll als Attribute name, level, health und power haben. Spieler sollen beim Erstellen mit einem Level, drei Health und ein Power starten. Desweiteren soll diese Klasse zwei Methoden implementieren:

  • get_damage(damage): Zieht dem Spieler Leben ab, bzw. heilt den Spieler falls damage negativ.
  • level_up(): Der Spieler bekommt ein Level-Up. Sie können sich selbst aussuchen, was dabei passiert!

2.

Erstellen Sie eine Klasse Monster. Diese soll als Attribute name, health und power haben. Sie dürfen sich aussuchen, mit welchen Standardwerten ihre Monster starten! Desweiteren soll diese Klasse zwei Methoden implementieren:

  • get_damage(damage): Zieht dem Monster Leben ab, bzw. heilt das Monster falls damage negativ.
  • rage(wahrheitswert) Falls True, gerät das Monster in rage und seine Power verdoppelt sich! Sonst wird sie auf den ursprünglichen Wert zurückgesetzt.

Bonus (kniffilig)

Werden Sie nun kreativ und machen Sie daraus ein kleines Videospiel in der Konsole, das Spiel könnte z.B. so starten… (kein funktionierender Code, nur Beispiel):

import random

def main():
    # Erstelle einen Spieler und ein Monster
    spieler = player(f"dieletztelebendekiwi")
    gegner  = monster(f"kiwiterminator")

    # Lasse Sie kämpfen. Falls Funktion True zurückgibt, hat man gewonnen. Sonst verloren.
    if kampf(spieler, gegner):
        print(f"Du hast {gegner.name} besiegt und bekommst ein level-up!")
        spieler.levelup()
    else:
        print(f"Du bist an {gegner.name} gestorben. Git Gud.")

def kampf(spieler: player, gegner: monster)-> bool:
    print(f"Achtung {spieler.name}, ein wildes {gegner.name} ist aufgetaucht!")
    entscheidung = input(f"Möchtest du kämpfen, oder dich wie eine feiges Huhn verhalten und abhauen?: kämpfen/abhauen")

    if(entscheidung == "kämpfen"):
        # Wiederhole Kampf bis einer nachgibt
        while(True):
            print(f"Es wird gekämpft!")
            gegner.get_damage(spieler.power + random.randint(0, 3))

            if(gegner.health <= 0):
                return True

            if(gegner.health == 1):
                print(f"Der Gegner wurde stärker, weil er kurz vor dem sterben ist. Anime-logik!")
                gegner.rage(true)

            spieler.get_damage(gegner.power + random.randint(0, 2))

            if(spieler.health <= 0):
                return False
            ...
    else:
        ...

if __name__ == "__main__":
    main()