Поздравляю! Ты освоил базу Python.
На этом бонусном уроке мы не будем учить новую теорию, а объединим все знания из предыдущих 6 уроков, чтобы создать полноценную игру.
В этом проекте нам понадобятся:
Переменные (для хранения жизней и числа).
Ввод данных (input) и преобразование типов (int).
Условия (if/elif/else), чтобы проверять догадки.
Цикл (while), чтобы игра продолжалась, пока не кончатся попытки.
Модули, чтобы компьютер мог загадать случайное число.
Подготовка: Случайные числа
В Python есть встроенный «модуль» random, который умеет генерировать случайные значения. Это как бросок кубика.
import random # Подключаем возможность генерировать случайные числа
number = random.randint(1, 10) # Загадать число от 1 до 10
print(number)
Техническое задание финального проекта
Твоя задача: Написать игру, где компьютер загадывает число от 1 до 20, а у игрока есть 5 попыток, чтобы его отгадать.
Алгоритм программы:
Подключи модуль random.
Создай переменную secret_number и положи туда случайное число от 1 до 20.
Создай переменную attempts (попытки) и приравняй её к 5.
Создай цикл while, который работает, пока attempts > 0.
Внутри цикла:
Спроси у пользователя число.
Если число совпало — напиши "Ура! Ты победил!" и используй команду break, чтобы выйти из цикла.
Если число меньше загаданного — напиши "Холодно! Мое число больше".
Если число больше загаданного — напиши "Горячо! Мое число меньше".
В конце каждого шага уменьшай attempts на 1.
После цикла (если игрок не угадал) напиши: "Попытки кончились! Я загадал число X".
# Example
import random
secret_number = random.randint(1, 20)
attempts = 5
print("Я загадал число от 1 до 20. У тебя есть 5 попыток!")
while attempts > 0:
print(f"Осталось попыток: {attempts}")
guess = int(input("Твой вариант: "))
if guess == secret_number:
print("Поздравляю! Ты настоящий экстрасенс! ????")
break
elif guess < secret_number:
print("Мало! Бери выше. ⬆️")
else:
print("Много! Бери ниже. ⬇️")
attempts = attempts - 1
if attempts == 0:
print(f"Игра окончена. Я загадал число {secret_number}. Попробуешь еще раз?")