2016-03-17 7 views
0

так же, как в моем другом вопросе, это одна о том горнорудной игре я сейчас работаю, есть ошибка, когда я запускаю его он делает это: when I test itКак создать цикл в питоне

Это закрывает программу, а не делает ее снова и снова, я хочу создать цикл, но я не знаю, как создать тип цикла для этого типа проблемы. Помоги пожалуйста?

вот код: `

import random 
start = raw_input("Welcome to the gold mine game! type 'start' to start playing ") 
if str.upper(start) == ("START"): 
    default_cash = 14 
    print "you have %s cash" % default_cash 
    choices = raw_input("What would you like to do? type 'dig' to dig for ores or type 'shop' to buy equitment ") 
    if str.upper(choices) == ("DIG"): 
    ores = ["nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "iron", "iron", "iron", "iron", "silver", "silver", "gold"] 
    ores_random = random.choice(ores) 
    print "you found %s!" % ores_random` 
+0

Сделайте быстрый поиск цепей часовых. Они в основном в цикле с переменной, которая является либо истинной, либо ложной, в конце цикла вы в основном спрашиваете пользователя, хотят ли они снова сделать цикл и дать им возможность изменять переменную, чтобы вырваться из петля. редактируйте: посмотрите код travis, это то, что он делает. – lciamp

ответ

2

Вы можете добавить время цикла, чтобы сохранить программу происходит до тех пор, пока данный сигнал до конца. Нравится:

import random 
import sys  #to exit program at end by calling sys.exit function 

start = raw_input("Welcome to the gold mine game! type 'start' to start playing ") 
if str.upper(start) == ("START"): 
    default_cash = 14 
    print "you have %s cash" % default_cash 
    choices = raw_input("What would you like to do? type 'dig' to dig for ores, type 'shop' to buy equitment, or type 'quit' to exit the game ") #gave extra instruction to user 
    quit_signal = False #added quit signal and initialized to false 
    while not quit_signal: #repeat until quit signal is true 
     if str.upper(choices) == ("DIG"): 
     ores = ["nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "nothing", "iron", "iron", "iron", "iron", "silver", "silver", "gold"] 
     ores_random = random.choice(ores) 
     print "you found %s!" % ores_random 
     choices = raw_input("What would you like to do? type 'dig' to dig for ores, type 'shop' to buy equitment, or type 'quit' to exit the game ") 
     elif str.upper(choices) == ("SHOP"): 
     #do something 
     choices = raw_input("What would you like to do? type 'dig' to dig for ores, type 'shop' to buy equitment, or type 'quit' to exit the game ") 
     elif str.upper(choices) == ("QUIT"): 
     quit_signal = True #set quit signal to true which will end while loop 
    sys.exit(0)  #to show successful program termination 

Отредактировано: Извините. Забыл заново ввести выбор. Введенный запрос ввода для назначения выбора в цикле while после необходимых условий

+0

, когда я пытаюсь, он просто говорит «вы нашли% s!» снова и снова навсегда, и я хочу, чтобы это говорило: «Что бы вы хотели сделать? Наберите« dig », чтобы копать в рудах, набирать« магазин », чтобы купить эквити, или набрать« quit », чтобы выйти из игры» и сделать весь цикл игры снова. –

+0

Отредактировано, поставьте комментарий в нижней части ответа –

Смежные вопросы