runfile('C:/Users/#/Desktop/game.py', wdir='C:/Users/#/Desktop') ausgibt. Ich verstehe nicht, warum es nicht läuft und wäre wirklich dankbar für Hilfe.
Code: Alles auswählen
import cmd
import textwrap
import sys
import os
import time
import random
screen_width = 100
#### Player Setup ####
class player:
def __init__(self):
self.name = ''
self.job = ''
self.hp = 0
self.geld = 0
self.status_effects = []
self.location = 'd4'
self.game_over = False
myPlayer = player()
#### Titelbild ####
def title_screen_selections():
option = input("> ")
if option.lower() == ("Spiel starten"):
setup_game() #Platzhalter, bis es geschrieben ist
elif option.lower() == ("Hilfe"):
help_menu()
elif option.lower() == ("Spiel verlassen"):
sys.exit()
while option.lower() not in ['Spiel starten', 'Hilfe', 'Spiel verlassen']:
print("Bitte einen gültigen Befehl eingeben.")
option = input("> ")
if option.lower() == ("Spiel starten"):
setup_game()
elif option.lower() == ("Hilfe"):
help_menu()
elif option.lower() == ("Spiel verlassen"):
sys.exit()
def title_screen():
os.system('clear')
print('#############################')
print('# Willkommen im Text RPG! #')
print('#############################')
print(' - Spiel starten - ')
print(' - Hilfe - ')
print(' -Spiel verlassen- ')
title_screen_selections()
def help_menu():
print('#############################')
print('# Willkommen im Text RPG! #')
print('#############################')
print('Nutze oben, unten, links, rechts um dich zu bewegen')
print('Tippe deine Befehle ein, um sie auszuführen')
print('Nutze "angucken" um etwas zu untersuchen')
print('Viel Spaß!')
title_screen_selections()
#### Karte ####
# """
# 1 2 3 4
# -----------------
# | | | | | a
# -----------------
# | | | | | b
# -----------------
# | | | | | c
# -----------------
# | | | | | d
# -----------------
# """
# Spieler startet auf d4 (Hoersaal 4)
ZONENAME = ' '
DESCRIPTION = 'beschreibung' #Strings zur Orientirung auf der Karte
EXAMINATION = 'umgebung'
SOLVED = False #bolean fuer geloeste Raetsel
UP = 'oben' , 'norden'
DOWN = 'unten' , 'süden'
LEFT = 'links' , 'westen'
RIGHT = 'rechts' , 'osten'
solved_places = {'a1': False, 'a2': False, 'a3': False, 'a4': False, #dictornary für alle gelösten Rätsel der Orte
'b1': False, 'b2': False, 'b3': False, 'b4': False, #Festlegung der Anfangswerte durch boolean false
'c1': False, 'c2': False, 'c3': False, 'c4': False, #(noch kein Rätsel gelöst)
'd1': False, 'd2': False, 'd3': False, 'd4': False,
}
ZONEMAP = {
'a1':{
ZONENAME: "Mensa",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: 'b1',
LEFT: '',
RIGHT: '',
},
'a2':{
ZONENAME: "Fahrradstaender",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: '',
RIGHT: '',
},
'a3':{
ZONENAME: "Cafe 9",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: 'b3',
LEFT: '',
RIGHT: '',
},
'a4':{
ZONENAME: "Fahrradstaender",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: '',
RIGHT: '',
},
'b1':{
ZONENAME: "Weg zur Mensa Nordteil",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'a1',
DOWN: 'c1',
LEFT: '',
RIGHT: '',
},
'b2':{
ZONENAME: "Hoersaal 2",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: '',
RIGHT: 'b3',
},
'b3':{
ZONENAME: "Hoersaalgang Nord",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'a3',
DOWN: 'c3',
LEFT: 'b2',
RIGHT: 'b4',
},
'b4':{
ZONENAME: "Hoersaal 1",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: 'b3',
RIGHT: '',
},
'c1':{
ZONENAME: "Weg zur Mensa Mitte",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'b1',
DOWN: 'd1',
LEFT: '',
RIGHT: 'c2',
},
'c2':{
ZONENAME: "Raucherbereich Ausgang Hoersaalgang Mitte",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: 'c1',
RIGHT: 'c3',
},
'c3':{
ZONENAME: "Hoersaalgang Mitte",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'b3',
DOWN: 'd3',
LEFT: 'c2',
RIGHT: '',
},
'c4':{
ZONENAME: "Fahrradstaender",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: '',
RIGHT: '',
},
'd1':{
ZONENAME: "Weg zur Uni Sued",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'c1',
DOWN: '',
LEFT: '',
RIGHT: '',
},
'd2':{
ZONENAME: "Hoersaal 3",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: '',
RIGHT: 'd3',
},
'd3':{
ZONENAME: "Hoersaalgang Sued",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: 'c3',
DOWN: '',
LEFT: 'd2',
RIGHT: 'd4',
},
'd4':{
ZONENAME: "Hoersaal 4",
DESCRIPTION: 'beschreibung',
EXAMINATION: 'umgebung',
SOLVED: False,
UP: '',
DOWN: '',
LEFT: 'd3',
RIGHT: '',
},
}
#### Spiel-Interaktionen ####
def print_location():
print('\n' + ('#' * (4 + len(myPlayer.location))))
print('# ' + myPlayer.location.upper() + ' #')
print('# ' + zonemap[myPlayer.location][DESCRIPTION] + ' #')
print('\n' +('#' * (4 + len(myPlayer.location))))
def prompt():
print('\n' + "==================================")
print("Was würdest Du gerne machen?")
action = input("> ")
acceptable_actions = ['gehe', 'laufe', 'benutze', 'gucke', 'untersuche', 'Spiel verlassen', 'beschreibung']
while action.lower() not in acceptable_actions:
print("unbekannter Befehl, gebe bitte einen anderen Befehl ein.\n")
action = input("> ")
if action.lower() == 'Spiel verlassen':
sys.exit()
elif action.lower() in ['gehe', 'laufe']:
player_move(action.lower())
elif action.lower() in ['benutze', 'gucke', 'untersuche', 'beschreibung']:
player_examine(action.lower())
def player_move(myAction):
ask = "wo würdest Du gerne hingehen?\n"
dest = input(ask)
if dest in ['oben' , 'norden']:
destination = zonemap[myPlayer.location][UP]
movement_handler(destination)
elif dest in ['unten' , 'süd']:
destination = zonemap[myPlayer.location][DOWN]
movement_handler(destination)
elif dest in ['links' , 'westen']:
destination = zonemap[myPlayer.location][LEFT]
movement_handler(destination)
elif dest in ['rechts' , 'osten']:
destination = zonemap[myPlayer.location][RIGHT]
movement_handler(destination)
def movement_handler(destination):
print("Du bist zum" + destination + "gegangen.")
myPlayer.location = destination
print_location()
def player_examine(action):
if zonemap[myPlayer.location][SOLVED]:
print("Du hast bereits alle Aufgaben in diesem Bereich erledigt!")
else:
print("Du hast hier noch etwas zu erledigen!")
#### Spielfunktionen ####
def main_game_loop():
while myPlayer.game_over is False:
prompt()
def setup_game():
os.system('clear')
#### Namensgebung Spieler
question1 = "Hallo, wie ist Dein Name?\n"
for character in question1:
sys.stdout.right(character)
sys.stdout.flush()
time.sleep(0.05)
player_name = input("> ")
myPlayer.name = player_name
#### Status Auswahl
question2 = "Hallo, " + myPlayer.name + " wie ist dein Status an der Uni?\n"
question2added = "(Du kannst zwischen Professor, Erstsemester, Drittsemester und Altstudent wählen.)\n"
for character in question2:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.05)
for character in question2:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.01)
player_job = input("> ")
valid_jobs = ['Professor', 'Erstsemester', 'Drittsemester', 'Langzeitstudent']
if player_job.lower() in valid_jobs:
myPlayer.job = player_job
print("Aha, du bist also ein " + player_job + "!\n")
while player_job.lower() not in valid_jobs:
player_job = input("> ")
if player_job.lower() in valid_jobs:
myPlayer.job = player_job
print("Aha, du bist also ein " + player_job + "!\n")
#### Statuswerte der Rollen ####
if myPlayer.job is 'Professor':
self.hp = 40
self.geld = 200
elif myPlayer.job is 'Erstsemester':
self.hp = 100
self.geld = 10
elif myplayer.job is 'Drittsemester':
self.hp = 80
self.geld = 0
elif myPlayer.job is 'Langzeitstudent':
self.hp = 60
self.geld = 50
####Einleitung
question3 = "Sei willkommen " + player_job + player_name + "!\n"
for character in question3:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.05)
player_name = input("> ")
myPlayer.name = player_name
speech1 = "Willkommen in der magischen Welt der Leuphana!\n"
speech2 = "Wollen wir hoffen, dass Du sie unbeschadet überstehst.\n"
speech3 = "Verpflegung findest Du in der Mensa.\n"
speech4 = "Solltest Du soweit kommen...\n"
speech5 = "Hehehehe....\n"
for character in speech1:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.03)
for character in speech2:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.03)
for character in speech3:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.03)
for character in speech4:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.2)
for character in speech5:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.3)
os.system('clear')
print("######################")
print("# Lass uns anfangen! #")
print("######################")
main_game_loop()
title_screen()