2015-04-04 2 views
0

Итак, я пытаюсь написать код, на котором компьютер догадывается, сколько человек думает. Я использовал диапазон между (x, y) и дал x и y значения 0 и 10.Почему этот код не работает? Угадайте номер игры Python 3

Компьютер выбирает случайное число между этими и запросами, если число верно, если оно не соответствует спрашивает, выше или ниже.

Здесь идет сложная часть, или на самом деле именно так, как я хотел ее решить. Если пользователь говорит, что это более высокое число, то он устанавливает x как номер предположения и возвращается назад к части угадывания и снова возвращается, если он ниже, y настроен на предположение.

Это код, который я написал для этого:

import random 
x = 0 
y = 10 
guessing_loop = "y" 
no_guess = 0 

while guessing_loop == "y": 
    guess = random.randint(x - 1,y + 1) 
    no_guess = no_guess + 1 
    print("The number I think you thought of is",guess,".") 
    TF = input("Did you think of that number?") 
    if TF in {"yes","y","yeah"}: 
     print("Hell yeah, the number of guesses I had was:",no_guess,".") 
    elif TF in{"no","nah","nay","n","nope"}: 
     HL = input("Then was it a higher or a lower number?") 
     if HL in {"higher","h"}: 
      x = guess 
     elif HL in {"lower","l"}: 
      y = guess 

input() 

Почему этот код работает?

Этот код просто не выполняет то, что я ожидаю от него, он не ищет случайное число между догадками или я даже не уверен, что не так.

+0

Люди downvoting это и голосование закрывает его; вам нужно проявить больше усилий, чтобы отлаживать свой собственный код: введите столько отчетов о печати, сколько нужно, чтобы следовать тому, что он на самом деле делает. – smci

+1

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

+0

Конечно. Добро пожаловать в Python, а также в SO. Прочтите краткое описание [FAQ] (http://stackoverflow.com/help) и просмотрите несколько других начинающих вопросов Python, чтобы увидеть полезные советы о том, как задать свой вопрос здесь, чтобы получить лучший ответ. Также вам может понравиться [CodeReview] (http://codereview.stackexchange.com/tour) для общих обзоров кода, в отличие от конкретных вопросов с четко определенными объективными ответами. – smci

ответ

3

Несколько вопросов:

  • Вы не вырваться из петли, как только вы нашли правильный номер.
  • Используйте имена переменных, которые показывают, что они означают, например. lower_bound и upper_bound вместо x и y.
  • Вместо random.randint(x - 1,y + 1), вы хотите random.randint(x + 1,y - 1)
Смежные вопросы