Пример разработки игры на Python: угадай число

В детстве вы наверно играли в игру, где нужно было угадать число. И вы угадывали, а вам говорили «меньше», «больше». И так пока вы не угадаете. Такую игру можно сделать на 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("Игра окончена")    
    

Вам также может понравиться

About the Author: Азат Ахметович

1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Максимальный размер загружаемого файла: 999 МБ. Вы можете загрузить: изображение, аудио, видео, документ, таблица, интерактив, текст, архив, код, другое. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Drop files here