2014-11-13 6 views
0

Im, создавая программу, которая просит пользователя ввести число от 1 до 100, программа сообщит пользователю, когда эти цифры слишком высокие или слишком низкие, и когда они выиграют. Когда они побеждают, их спрашивают, хотят ли они снова играть или останавливаться. Проблема в том, что я не знаю, как заставить программу воспроизводить игру. Помощь очень признательна (и я знаю, что большинство из вас захочет использовать def, но я не знаю, как использовать его, поэтому я был бы признателен, если бы вы его не использовали) Спасибо.Как воспроизвести игру?

import random 
count=0 
user=raw_input("Welcome to Guess the Number! Please enter a number from 1-100: ") 
user=int(float(user)) 
computer=random.randrange(0,101) 
computer=int(float(computer)) 
while user!=computer: 
    if user<computer: 
     user=raw_input("This number is too low! Please try again: ") 
     user=int(float(user)) 
     count+=1 
    if user>computer: 
     user=raw_input("This number is too high! Please try again: ") 
     user=int(float(user)) 
     count+=1 
else: 
    count+=1 
    print "You win! The computer entered: " + str(computer) + " It took you " + str(count) + " tries to get the right answer!" 
    user=raw_input("If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
    while user!="play" and user1!="stop": 
     user=raw_input("Thats not what I asked for! If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
     if user=="play": 
      count=0 
      computer=random.randrange(0,101) 
      computer=int(float(computer)) 
      while user!=computer: 
       if user<computer: 
        user=raw_input("This number is too low! Please try again: ") 
        user=int(float(user)) 
        count+=1 
       if user>computer: 
        user=raw_input("This number is too high! Please try again: ") 
        user=int(float(user)) 
        count+=1 
      else: 
       count+=1 
       print "You win! The computer entered: " + str(computer) + " It took you " + str(count) + " to get the right answer!" 
       user=raw_input("If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
     if user=="stop": 
      print "" 
+2

О, дорогой. Вы должны научиться использовать функции! Разбивание этого на более мелкие блоки сделает его более читаемым и более легким для исправления. –

ответ

-1
import random 
count=0 
user=raw_input("Welcome to Guess the Number! Please enter a number from 1-100: ") 

go = False 

while(go is True): 
    user=int(float(user)) 
    computer=random.randrange(0,101) 
    computer=int(float(computer)) 
    while user!=computer: 
     if user<computer: 
      user=raw_input("This number is too low! Please try again: ") 
      user=int(float(user)) 
      count+=1 
     if user>computer: 
      user=raw_input("This number is too high! Please try again: ") 
      user=int(float(user)) 
      count+=1 
    else: 
     count+=1 
     print "You win! The computer entered: " + str(computer) + " It took you " + str(count) + " tries to get the right answer!" 
     user1=raw_input("If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
     while user!="play" and user1!="stop": 
      user1=raw_input("Thats not what I asked for! If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
      if user=="play": 
       count=0 
       computer=random.randrange(0,101) 
       computer=int(float(computer)) 
       while user!=computer: 
        if user<computer: 
         user=raw_input("This number is too low! Please try again: ") 
         user=int(float(user)) 
         count+=1 
        if user>computer: 
         user=raw_input("This number is too high! Please try again: ") 
         user=int(float(user)) 
         count+=1 
       else: 
        count+=1 
        print "You win! The computer entered: " + str(computer) + " It took you " + str(count) + " to get the right answer!" 
        user=raw_input("If you would like to play again, please enter 'play' and if you would like to stop, please enter 'stop': ") 
      if user=="stop": 
       #print "" 
       #Change it so that you change go to False 
       #The loop will not execute again 
       go = False 

Предполагая, что этот код работает (я не запускать его) вы бы обернуть его в какой-то цикл, который выполняет, пока не вырвались из. В этом случае я использовал цикл while, который проверял логическое имя go. Первоначально это правда, что означает, что цикл while повторяется снова и снова, но когда пользователь хочет остановиться, я обрабатываю это, установив False. Цикл while не будет выполняться, потому что go теперь false, и ваша программа закончится, потому что после цикла while больше ничего не нужно выполнять.

+0

Большое вам спасибо! –

2
import random 

def play_game(): 

    # Much nicer than int(float(random.randrange(0,101))) 
    computer = random.randint(0, 101) 
    count = 0 

    # Keep looping until we return 
    while True: 

     count += 1 
     user = int(raw_input('Please guess a number: ')) 

     if user < computer: 
      print 'too low!' 
     elif user > computer: 
      print 'too high!' 
     else: 
      print 'You win!' 
      print 'It took you {} tries to get the right answer!'.format(count) 
      return # Leave play_game 

def main(): 

    print 'Welcome!' 

    while True:  
     play_game() 

     play_again = raw_input('Play again? y/n: ') == 'y' 
     if not play_again: 
      return # Leave main 

main()