2016-12-14 1 views
-1

Wie führe ich meinen Code zurück in die fünfte Zeile und frage den Spieler nach einem anderen Charakter? Ich muss den Spieler in die Lage versetzen, so viele Charaktere wie er will einzugeben.Wie schleife ich mein gesamtes Programm?

from __future__ import division #This imports the division module which allows the program to generate decimals 
from random import randint # This imports the random integer module which allows the program to randomly generate integers 


character = raw_input(str("Pick a character: martian,plutonian,human or dog\n>>")) # This asks the player what character they would like to play 
strength = randint(3, 20) # This sets the range for the strength variable 
speed = randint(3, 20) # This sets the range for the speed variable 
height = randint(120, 183)/100 # This sets the range for the height variable (the variables are 100x the amount that the task states) it then divides the value by 100 
# The reason as to why the height value is 100x what it is meant to be is because the height is a decimal and the randint function only works with real numbers 
heart_rate = randint(60, 110) # This sets the range for the heart rate variable 


if character=="martian": # This makes the following only occur if the player inputs "martian" 
    strength += 3 #This adds 3 to the value of strength 
    speed +=2 #This adds 2 to the value of speed 
if character =="plutonian": #This makes the following only occur if the player inputs "plutonian" 
    heart_rate+=7 #This adds 7 to the value of heart rate 
    height+=1 #This adds 1 to the value of height 
if character=="human": #This makes the following only occur if the player inputs "human" 
    heart_rate+=3 #This adds 3 to the heart rate value 
if character=="dog": #This makes the following only occur if the player inputs dog 
    height-=3 #This takes 3 away from the height value 


print "Your strength is", strength # This prints the strength of the character 
print "Your speed is", speed # This prints the speed of the character 
print "Your heart rate is", heart_rate # This prints the heart rate of the character 
print "Your height is", height # This prints the height of the character 


file_txt=open('Character Statistics.txt', 'a',) #This creates and names the text file 
file_txt.write(str("Character Statistics:\n")) #This makes a title within the text document 
file_txt.write("Your strength is: ") #This prints text into the text file 
file_txt.write(str(strength)+"\n") #This adds the strength value to the txt file 
file_txt.write("Your speed is: ") #This prints text into the text file 
file_txt.write(str(speed)+"\n") #This adds the speed value to the txt file 
file_txt.write("Your heart rate is: ") #This prints text into the text file 
file_txt.write(str(heart_rate)+"\n") #This adds the heart rate value to the txt file 
file_txt.write("Your height is is: ") #This prints text into the text file 
file_txt.write(str(height)+"\n") #This adds the height value to the txt file 
+2

Legen Sie die Schleife um die Logik, die Sie loopen möchten. Übertreibe es nicht. – ceejayoz

+1

Setzen Sie die gesamte Logik in die Schleife. Außerdem schlage ich vor, es auf [codereview.stackexchange.com] (http://codereview.stackexchange.com/) zu posten. Es gibt eine Menge zu verbessern in diesem Code-Snippet –

+0

erstellen Sie eine Funktion (oder, noch besser) eine Klasse für Zeichen. – mauve

Antwort

0

Verwenden Sie eine while Schleife:

character_list = ['martian', 'plutonian', 'human', 'dog'] 
while True: 
    character = raw_input("Pick a character: %s\n>>" % ', '.join(character_list)) 
    if character not in character_list: 
     # The user is done 
     break 

Wenn der Benutzer ein ungültiges Zeichen eingibt, annehmen, dass sie aus der Schleife fertig sind und brechen. Fügen Sie den Rest Ihres Zeichengenerierungscodes nach der Zeilengruppe if ein.

+0

Danke für die Antworten. – Wilziam

Verwandte Themen