2015-02-14 5 views
1

Я написал простую игру в кости, которая работает по назначению, за исключением той части, с которой я борюсь, и как закончить игру с нажатой конкретной клавишей. Я знаю, что делаю простую ошибку (ну, я новичок), но если бы вы могли просто указать, что не так с кодом, я буду рад.перерыв в цикле while

Спасибо!

import random 



def game(): 
    while True: 

     userRoll = int(raw_input("Enter a number from 1 to 10 [press q to end the game]: ")) 
     compRoll = random.randrange(1, 11) 

     print "You rolled " + str(userRoll) 
     print "Computer rolled " + str(compRoll) 

     if userRoll > compRoll and userRoll > 0 and userRoll < 11: 
      print "You win!" 

     elif userRoll == compRoll: 
      print "It's a tie!" 

     elif userRoll < compRoll: 
      print "Computer wins!" 

     elif userRoll == 'q': 
      print "bye" 
      break 

     else: 
      print "You must enter number from 1 to 10. Try again..." 

game() 

ответ

1

Этот код не является полезным:

elif userRoll == 'q': 
     print "bye" 
     break 

К тому времени, что код выполняет, вы уже перешли userRoll в целое число. Итак, если не может быть q. Следующий код проверяет userRoll == 'q' до преобразования в целое:

import random 

def game(): 
    while True: 

     userRoll = raw_input("Enter a number from 1 to 10 [press q to end the game]: ") 
     if userRoll == 'q': 
      print "bye" 
      break 
     userRoll = int(userRoll) 

     compRoll = random.randrange(1, 11) 

     print "You rolled " + str(userRoll)_ 
     print "Computer rolled " + str(compRoll) 

     if userRoll > compRoll and userRoll > 0 and userRoll < 11: 
      print "You win!" 

     elif userRoll == compRoll: 
      print "It's a tie!" 

     elif userRoll < compRoll: 
      print "Computer wins!" 

     else: 
      print "You must enter number from 1 to 10. Try again..." 

game() 
+0

Спасибо !. Как я мог забыть об этом. – ikechi

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