2016-12-14 67 views
-1

我該如何讓我的代碼回到第五行並要求玩家換一個角色?我需要讓玩家能夠輸入儘可能多的角色。如何循環我的整個程序?

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

把循環放到你想要循環的邏輯上。不要過度複雜。 – ceejayoz

+1

將整個邏輯放入循環中。此外,我建議將它發佈在[codereview.stackexchange.com](http://codereview.stackexchange.com/)上。在這段代碼片段中有很多需要改進的地方: –

+0

爲角色創建一個函數(或者甚至更好)。 – mauve

回答

0

使用while循環:

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 

如果用戶輸入無效字符,認爲他們這樣做,打破循環。將其餘的字符生成代碼放在if節之後。

+0

感謝您的答案。 – Wilziam