Created
April 28, 2020 07:03
-
-
Save BMU-Verlag/991dba3b2f9bd154fc0f75b5b067cb8b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Spieler: | |
def __init__(self): | |
self.__Name = input("Wie heißt du?\n") | |
eingabe = input("Willst du das Herz einer Prinzessin oder eines Prinzen erobern?\n") | |
while eingabe != "Prinzessin" and eingabe != "Prinz": | |
eingabe = input ("Gib bitte den Begriff 'Prinzessin' oder den Begriff 'Prinz' ein!\n") | |
self.__Ziel = eingabe | |
self.__Position = 0 | |
self.__Ausstattung = [] | |
def getName(self): | |
return self.__Name | |
def getPosition(self): | |
return self.__Position | |
def getZiel(self): | |
return self.__Ziel | |
def zug(self, orte): | |
richtungen = ["Gehe nach Norden", "Gehe nach Osten", "Gehe nach Süden", "Gehe nach Westen"] | |
print (orte[self.__Position].getBeschreibung()) | |
while True: | |
anweisung = input () | |
bedingung1 = anweisung != "" and anweisung in orte[self.__Position].getAnweisung() | |
bedingung2 = (anweisung == orte[self.__Position].getAnweisung()[0] and self.__Ziel == "Prinzessin") | |
bedingung3 = (anweisung == orte[self.__Position].getAnweisung()[1] and self.__Ziel == "Prinz") | |
if bedingung1 and (bedingung2 or bedingung3): | |
if orte[self.__Position].getGegenstand() not in self.__Ausstattung: | |
if orte[self.__Position].getNotwendig() in self.__Ausstattung or orte[self.__Position].getNotwendig() == "": | |
self.__Ausstattung += [orte[self.__Position].getGegenstand()] | |
if self.__Position == 6: | |
self.__Position = -1 | |
if self.__Ziel == "Prinzessin": | |
print("\nDu hast das Herz der Prinzessin gewonnen.") | |
else: | |
print("Du hast das Herz des Prinzen gewonnen.") | |
print("Vielen Dank, dass du unser Spiel gespielt hast.") | |
break | |
else: | |
print("\nHerzlichen Glückwunsch!") | |
print("Du hast folgenden Gegenstand gewonnen: {} \n".format(orte[self.__Position].getGegenstand())) | |
else: | |
print("\nDu kannst diese Aktion nicht durchführen.") | |
print("Du benötigst: {}".format(orte[self.__Position].getNotwendig())) | |
else: | |
print("\nDu hast diesen Gegenstand schon.") | |
elif anweisung in richtungen: | |
neuerOrt = False | |
for i in range(4): | |
if anweisung == richtungen[i] and orte[self.__Position].getAusgang()[i] >= 0: | |
print("\nDu suchst einen neuen Ort auf.") | |
self.__Position = orte[self.__Position].getAusgang()[i] | |
neuerOrt = True | |
if neuerOrt: | |
break | |
print("\nIn diese Richtung kannst du nicht gehen.\n") | |
elif anweisung == "Hilfe": | |
print("\nDu kannst hier folgende Befehle eingeben:") | |
if self.__Ziel == "Prinzessin": | |
print(orte[self.__Position].getAnweisung()[0]) | |
else: | |
print(orte[self.__Position].getAnweisung()[1]) | |
for i in range(4): | |
if orte[self.__Position].getAusgang()[i] >= 0: | |
print(richtungen[i]) | |
elif anweisung == "Ausstattung": | |
print("\nDu hast folgende Gegenstände gewonnen:") | |
for gegenstand in self.__Ausstattung: | |
print(gegenstand) | |
else: | |
print("\nDiesen Befehl kenne ich nicht!") | |
class Ort: | |
def __init__(self, beschreibung, anweisung, ausgang, gegenstand, notwendig): | |
self.__Beschreibung = beschreibung | |
self.__Anweisung = anweisung | |
self.__Ausgang = ausgang | |
self.__Gegenstand = gegenstand | |
self.__Notwendig = notwendig | |
def getBeschreibung(self): | |
return self.__Beschreibung | |
def getAnweisung(self): | |
return self.__Anweisung | |
def getNotwendig(self): | |
return self.__Notwendig | |
def getGegenstand(self): | |
return self.__Gegenstand | |
def getAusgang(self): | |
return self.__Ausgang | |
einleitung = """\n\nHerzlich willkommen zu unserem Text-Adventure-Spiel! | |
Hier warten spannende Abenteuer auf dich. | |
In diesem Spiel kannst du eine sagenumwobene Landschaft erkunden und dabei mit Drachen kämpfen | |
und das Herz einer Prinzessin oder eines Prinzen erobern. | |
Erkunde dabei die verschiedenen Bereiche und probiere aus, was du dort tun kannst. Falls du | |
einmal nicht weiter kommst, gibt einfach den Begriff 'Hilfe' ein. Dann erhältst du ein paar Tipps, | |
die dir weiterhelfen können. Wenn Du sehen willst, welche Gegenstände du bereits gewonnen hast, | |
kannst du den Begriff 'Ausstattung' eingeben.\n""" | |
print (einleitung) | |
spieler = Spieler() | |
name = spieler.getName() | |
beschreibung = """\n\n%(n)s, du stehst auf einer großen Wiese. | |
Neben dir erblickst du einen Brunnen. Weiter im Osten erkennst du | |
einen dunklen Wald. Im Norden siehst du etwas Rauch aufsteigen. Es scheint, | |
als ob sich dort ein Haus befindet.\n""" % {'n': name} | |
befehle = ["Schaue in den Brunnen", "Schaue in den Brunnen"] | |
orteListe = [Ort(beschreibung, befehle, [2, 1, -1, -1], "Schlüssel", "")] | |
beschreibung = """\n\nDu befindest dich in einem finsteren Wald aus dichten Tannen.\n""" | |
befehle = ["", ""] | |
orteListe += [Ort(beschreibung, befehle, [3, -1, -1, 0], "", "")] | |
beschreibung = """\n\nDu hast ein kleines Haus entdeckt. Es scheint, als sei niemand zu Hause. | |
Willst du nachschauen, was du in diesem Haus findest?\n""" | |
befehle = ["Öffne die Türe", "Öffne die Türe"] | |
orteListe += [Ort(beschreibung, befehle, [6, 3, 0, -1], "Schwert", "Schlüssel")] | |
beschreibung = """\n\n%(n)s, du hast ein weites Tal betreten. Ganz im Osten erblickst du" | |
den Eingang zu einer finsteren Höhle.\n""" % {'n': name} | |
befehle = ["", ""] | |
orteListe += [Ort(beschreibung, befehle, [5, 4, 1, 2], "", "")] | |
beschreibung = """\n\nDu hast die Höhle betreten. Tropfsteine hängen von der Decke herab. | |
Es riecht nach Schwefel. Du spürst, dass du hier nicht alleine bist. | |
Plötzlich steht ein riesiger Drachen vor dir.\n""" | |
befehle = ["Töte den Drachen","Töte den Drachen"] | |
orteListe += [Ort(beschreibung, befehle, [-1, -1, -1, 3], "goldener Kelch", "Schwert")] | |
beschreibung = """\n\nDu stehst auf einer Wiese. Weit im Westen erkennst du die Umrisse eines | |
großen Gebäudes. Es scheint ein Schloss zu sein.\n""" | |
befehle = ["", ""] | |
orteListe += [Ort(beschreibung, befehle, [-1, -1, 3, 6], "", "")] | |
beschreibung = """\n\nDu bist an einem großen Schloss angekommen. | |
Du trittst durch das Tor und stehst in einer riesigen Halle.\n""" | |
if spieler.getZiel() == "Prinzessin": | |
beschreibung += "Eine Türe öffnet sich und eine Prinzessin steht vor dir.\n" | |
else: | |
beschreibung += "Eine Türe öffnet sich und ein Prinz steht vor dir.\n" | |
befehle = ["Gib der Prinzessin den goldenen Kelch", "Gib dem Prinzen den goldenen Kelch"] | |
orteListe += [Ort(beschreibung, befehle, [-1, 5, 2, -1], "", "goldener Kelch")] | |
print("\nHallo {}, schön dass du da bist!\n".format(spieler.getName())) | |
beginn = input("Bist du bereit?\n") | |
if beginn == "ja" or beginn == "Ja" or beginn == "JA": | |
while spieler.getPosition() >= 0: | |
spieler.zug(orteListe) | |
else: | |
print("Das ist schade. Hoffentlich sehen wir uns bald wieder!") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment