Warum läuft dieser Code nicht?
Verfasst: Montag 15. Januar 2018, 14:19
Ich muss für die Uni für ein Seminar ein Spiel schreiben und habe mich da für ein Text RPG entschieden. Da ich beim Programmieren ein absoluter Neuling bin, habe ich mich für die Erstellung des Codes sehr stark an das Tutorial von Bryan Tong gehalten ( https://www.youtube.com/channel/UC5akxk ... bQQ/videos ). Allerdings funktioniert der Code bei mir nicht, da er lediglich
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.
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()