В детстве вы наверно играли в игру, где нужно было угадать число. И вы угадывали, а вам говорили «меньше», «больше». И так пока вы не угадаете. Такую игру можно сделать на Python. Код получается довольно простым.
Не смотря на кажущуюся простоту игра довольно интересна. Особенно если ограничить количество попыток. Вот например, что бы угадать число от 1 до 10 достаточно 4 попыток, а для нахождения от 1 до 100 достаточно 7 попыток. Вам лишь нужно применить метод половинного деления.
Для того что бы компьютер мог загадать число используем модуль random.
Код будет таким:
import random n = 10 pmax = 4 print("Угадайте число от 1 до ",n, " за ",pmax," попыток") a = random.randint(1,n) b = -1 p = 1 while a != b: b = int(input("Ваш вариант = ")) p = p + 1 if b<a: print("больше") elif b>a: print("меньше") else: print("угадали с ",p," попытки") if p <= pmax: print("Вы победили!") else: print("Вы проиграли. ")
Игру кстати можно усложнить и добавить уровни. Например
- 1 уровень: нужно угадать число от 1 до 10 за 4 хода
- 2 уровень: нужно угадать число от 1 до 100 за 7 ходов
- 3 уровень: нужно угадать число от 1 до 1000 за 10 ходов
Для реализации основной алгоритм вынесем в функцию:
import random def game(pmax,n): print("Угадайте число от 1 до ",n, " за ",pmax," попыток") a = random.randint(1,n) b = -1 p = 1 while a != b: b = int(input("Ваш вариант = ")) p = p + 1 if b<a: print("больше") elif b>a: print("меньше") else: print("угадали с ",p," попытки") if p <= pmax: print("Вы прошли уровень!") rez = 1 else: print("Вы проиграли. Играем снова этот уровень.") rez = 0 return rez print("Игра угадай число") print("Уровень 1") win = 0 while win == 0: win = game(4,10) print("Уровень 2") win = 0 while win == 0: win = game(7,100) print("Уровень 3") win = 0 while win == 0: win = game(10,1000) print("Игра окончена")
Выдрина 8б