📖 Содержание
Часть 1: Мир программирования вокруг нас
Часть 2: Алфавит и словарь программирования
Часть 3: Строим первые программы
Часть 4: Наш удивительный мозг
Часть 5: Творческие проекты
Часть 6: Программирование в реальном мире
Глава 12 из 27
3: Строим первые программы
Глава 12: "Создаём свою первую игру"
Алиса пришла к Профессору Биту раньше обычного. Она едва сдерживала волнение.
— Профессор, я думала обо всём, что мы изучили — переменных, условиях, циклах, функциях, списках... И мне так хочется применить эти знания для создания чего-то настоящего!
Профессор улыбнулся:
— Ты совершенно права, Алиса! Знания приобретают настоящую ценность, когда мы применяем их на практике. Что бы ты хотела создать?
— Игру! — не задумываясь, ответила Алиса. — Настоящую компьютерную игру, в которую можно играть!
— Отличная идея! — Профессор потёр руки. — Давай создадим простую, но увлекательную игру "Угадай число".
Байт радостно подъехал ближе, на его экране появилась надпись: "Я ЛЮБЛЮ ИГРЫ!"
— Прежде чем начать писать код, давайте спланируем, как должна работать наша игра, — предложил Профессор. — Это самый важный этап в разработке любой программы.
Алиса кивнула, а Профессор, глядя на пустую доску, задумчиво и тихо произнёс:
Каждый получает то, что излучает, —
Жизнь так справедлива и мудра!
Каждый пожинает то, что выбирает, —
Жизнь — для всех великая игра.
Каждый замечает то, во что играет,
От чего теряет свой покой.
Сложности и стены сам изобретает,
Чтобы стать особенным собой.
Поиграть азартно время приглашает,
Предлагая множество ролей.
Игроков с лихвою жизнь вознаграждает
Воплощеньем творческих идей!
Профессор взял маркер и начал писать на доске:
План игры "Угадай число":
1. Компьютер загадывает случайное число от 1 до 100.
2. Игрок пытается угадать это число.
3. Компьютер сообщает, больше или меньше загаданное число.
4. Игрок продолжает угадывать, пока не найдёт правильный ответ.
5. После угадывания компьютер сообщает, сколько попыток потребовалось.

— Звучит просто, но будет очень интересно играть! — сказала Алиса. — С чего начнём?
— Начнём с импорта нужных библиотек и определения основных переменных, — ответил Профессор и вывел на экран первые строки кода:
python
import random # Библиотека для генерации случайных чиселЗагадываем случайное число от 1 до 100
загаданное_число = random.randint(1, 100)Счётчик попыток
попытки = 0Приветствие
print("Добро пожаловать в игру 'Угадай число'!")
print("Я загадал число от 1 до 100. Попробуешь угадать?")
— Что такое import random? — спросила Алиса.
— Это команда, которая подключает к нашей программе дополнительную библиотеку — набор уже готовых функций, — объяснил Профессор. — Библиотека random содержит функции для работы со случайными числами. Мы используем функцию randint(), чтобы получить случайное целое число в указанном диапазоне.
— Понятно! — кивнула Алиса. — А что дальше?
— Теперь нам нужно создать основной цикл игры, — продолжил Профессор. — Игрок будет вводить числа, а программа будет их проверять, пока правильное число не будет угадано:
python
Основной цикл игры
угадано = Falsewhile not угадано:
# Получаем предположение игрока
предположение = int(input("Твоё предположение: "))
попытки += 1
# Проверяем предположение
if предположение < загаданное_число:
print("Загаданное число больше!")
elif предположение > загаданное_число:
print("Загаданное число меньше!")
else:
угадано = True
print(f"Поздравляю! Ты угадал число за {попытки} попыток!")
— Давай разберём этот код по частям, — предложил Профессор:
угадано = False — создаём переменную-флаг, которая показывает, угадано ли число. Пока оно не угадано, флаг опущен (False).while not угадано: — цикл будет крутиться, пока число не угадано.предположение = int(input(...)) — получаем ответ от игрока и преобразуем его из текста в целое число (int).попытки += 1 — увеличиваем счётчик попыток на единичку.if-elif-else): проверяем, меньше, больше или равно число загаданному.f"Поздравляю! ... {попытки} попыток!" — это f-строка. Буква f в начале позволяет нам вставлять значения переменных прямо внутрь текста в фигурных скобках.— А если игрок случайно введёт не число, а букву? — прищурилась Алиса.
— Отличный вопрос, достойный настоящего тестировщика! — похвалил Профессор. — Наша программа выдаст ошибку и сломается. Давай добавим обработку исключений, которую мы изучили на прошлом уроке, чтобы сделать игру надёжной:
python
угадано = Falsewhile not угадано:
try:
предположение = int(input("Твоё предположение: "))
попытки += 1
if предположение < загаданное_число:
print("Загаданное число больше!")
elif предположение > загаданное_число:
print("Загаданное число меньше!")
else:
угадано = True
print(f"Поздравляю! Ты угадал число за {попытки} попыток!")
except ValueError:
print("Пожалуйста, введи целое число цифрами!")
— Блок try-except спасёт положение, — пояснил Профессор. — Если игрок введёт слово вместо числа, программа не завершится с ошибкой, а выведет вежливую просьбу.
— А можно добавить подсказки, если игрок долго не может угадать? — спросила Алиса.
— Конечно! — Профессор быстро дополнил код, добавив проверку на каждую третью попытку:
python
if предположение < загаданное_число:
print("Загаданное число больше!")
# Подсказка каждую 3-ю попытку, если число далеко
if попытки % 3 == 0 and загаданное_число >= предположение + 10:
print(f"Подсказка: оно даже больше, чем {предположение + 10}!")elif предположение > загаданное_число:
print("Загаданное число меньше!")
# Подсказка каждую 3-ю попытку, если число далеко
if попытки % 3 == 0 and загаданное_число <= предположение - 10:
print(f"Подсказка: оно даже меньше, чем {предположение - 10}!")
— Теперь давай соберём всё воедино и добавим ещё одну приятную деталь — возможность сыграть ещё раз, не перезапуская саму программу, — предложил Профессор:
python
import randomФункция для одной полноценной игры
def сыгратьвигру():
загаданное_число = random.randint(1, 100)
попытки = 0
угадано = False print("\nЯ загадал число от 1 до 100. Попробуешь угадать?")
while not угадано:
try:
предположение = int(input("Твоё предположение: "))
попытки += 1
if предположение < загаданное_число:
print("Загаданное число больше!")
if попытки % 3 == 0 and загаданное_число >= предположение + 10:
print(f"Подсказка: оно даже больше, чем {предположение + 10}!")
elif предположение > загаданное_число:
print("Загаданное число меньше!")
if попытки % 3 == 0 and загаданное_число <= предположение - 10:
print(f"Подсказка: оно даже меньше, чем {предположение - 10}!")
else:
угадано = True
print(f"Поздравляю! Ты угадал число за {попытки} попыток!")
except ValueError:
print("Пожалуйста, введи целое число!")
return попытки
Основная программа (Меню)
print("Добро пожаловать в игру 'Угадай число'!")
играть_снова = "да"
лучший_результат = float('inf') # Бесконечность, чтобы первый же результат стал лучшимwhile играть_снова.lower() == "да":
результат = сыгратьвигру()
if результат < лучший_результат:
лучший_результат = результат
print(f"Новый рекорд! {результат} попыток!")
играть_снова = input("Хочешь сыграть ещё раз? (да/нет): ")
print(f"Спасибо за игру! Твой лучший результат: {лучший_результат} попыток.")
— Мы создали функцию сыгратьвигру(), которая содержит логику одного раунда, и основной цикл, который позволяет играть снова и снова, — объяснил Профессор. — Кроме того, мы добавили отслеживание лучшего результата (рекорда).
— Это потрясающе! — воскликнула Алиса. — Можно попробовать?
Профессор нажал кнопку запуска, и Алиса начала играть. После нескольких попыток она угадала число и восторженно захлопала в ладоши.

— Я сделала это! Я создала настоящую игру!
— Технически, мы создали её вместе, — улыбнулся Профессор, — но суть ты уловила верно. Это настоящая игра, и теперь ты можешь гордиться собой!
— А можно как-то улучшить её? — спросила Алиса после нескольких раундов.
— Конечно! Нет предела совершенству, — кивнул Профессор. — Вот несколько идей, которые ты можешь реализовать в будущем:
1. Добавить уровни сложности (разные диапазоны чисел, например, от 1 до 1000).
2. Ограничить количество попыток (добавить "жизни").
3. Создать режим для двух игроков.
4. Добавить графический интерфейс с кнопками и картинками, а не только текст!
— Это будет следующим шагом в твоём путешествии по миру программирования, — добавил Профессор. — Начав с простой игры, ты можешь постепенно усложнять её, пока она не превратится в настоящий шедевр.