Skip to content

Instantly share code, notes, and snippets.

@BMU-Verlag
Created April 28, 2020 07:03
Show Gist options
  • Save BMU-Verlag/991dba3b2f9bd154fc0f75b5b067cb8b to your computer and use it in GitHub Desktop.
Save BMU-Verlag/991dba3b2f9bd154fc0f75b5b067cb8b to your computer and use it in GitHub Desktop.
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