Форум сайта python.su
0
пытаюсь написать код игры, где компьютер угадывает загаданное пользователем число от 0 до 100,
сделать нужно не пользуясь case или for…
вот, что у меня получилось:
v1=101
v2=50
p=“”
while p!=“=”:
print(“\nМой ответ:”, v2)
p=input(“ ”)
if p==“<” and v2<v1:
ver= (v2-0)//2+0
v1=v2
v2=ver
elif p==“<” and v2>v1:
ver= (v2-v1)//2+v1
v1=v2
v2=ver
elif p==“>” and v2<v1:
ver= (v1-v2)//2+v2
v1=v2
v2=ver
elif p==“>” and v2>v1:
ver= (101-v2)//2+v2
v1=v2
v2=ver
print(“\nЯ угадал, ваше число =”, v2)
Но проблема в том, что у меня сравниваются только последние два варианта числа,
а теперь понял, что нужно сохранять все варианты угадываемых чисел…
Но как это сделать? и как тогда дальше выбирать из них наименьшие, наибольшие, и т.д.
Отредактировано Ruslan1 (Май 19, 2016 01:49:13)
Офлайн
4
Офлайн
0
и без массивов….)
Офлайн
4
У вас числа от 0 до 100 чем не массив
Разделить 100 на 2 и спросить в какой половине нужное число и повторить пока не останется 1 число.
Офлайн
0
Легко. Ежели не справишься - обращайся, напишу тебе.
Офлайн
0
Набросал:
def showhelp(): # показываем справку print("В качестве ответа на вопрос компьютера используйте символы <(меньше), >(больше) и =(равно).") # число от 0 до 100 r=0,100 # создаем множество чисел m=set([i for i in range(r[0],r[1]+1)]) # возможные ответы пользователя user_otvets={">", "<", "="} # показываем диапазон чисел print("Задумайте число от", r[0], "до", r[1]) # показываем справку showhelp() # хранит ответ пользователя otvet="" while otvet!="=": # если множество пустое if(len(m)<1): print("Компьютер: Вы мне соврали в ответах, лишь поэтому я не угадал!") # покидаем цикл break # вариант компьютера variant=(min(m)+max(m))//2 # выводим вопрос print("Компьютер: Вы задумали "+str(variant)+"?") # считываем ответ пользователя otvet=input("Вы: ") # если ответ недопустим if otvet not in user_otvets: # показываем справку showhelp() # продолжаем цикл continue else: # ответ "больше" if otvet==">": # генерируем множество m=set([i for i in m if i>variant]) # ответ "меньше" elif otvet=="<": # генерируем множество m=set([i for i in m if i<variant]) # ответ "равно" else: # выводим, что угадали print("Компьютер: Ура! Я угадал!") # покидаем цикл break
Офлайн