📖 Зміст
Частина 1: Світ програмування навколо нас
Частина 2: Алфавіт і словник програмування
Частина 3: Будуємо перші програми
Частина 4: Наш дивовижний мозок
Частина 5: Творчі проекти
Частина 6: Програмування в реальному світі
Частина 7: Від електрики до штучного інтелекту
Глава 12 з 27
3: Будуємо перші програми
Розділ 12: "Створюємо свою першу гру"
Аліса прийшла до Професора Біта раніше звичайного. Вона ледь стримувала хвилювання.
— Професоре, я думала про все, що ми вивчили — змінні, умови, цикли, функції, списки... І мені так хочеться застосувати ці знання для створення чогось справжнього!
Професор посміхнувся:
— Ти абсолютно права, Алісо! Знання набувають справжньої цінності, коли ми застосовуємо їх на практиці. Що б ти хотіла створити?
— Гру! — не задумуючись, відповіла Аліса. — Справжню комп'ютерну гру, в яку можна грати!
— Відмінна ідея! — Професор потер руки. — Давай створимо просту, але захоплюючу гру "Вгадай число".
Байт підкотився ближче, на його екрані з'явився оклик: "Я люблю ігри!"
— Перш ніж почати писати код, давайте сплануємо, як повинна працювати наша гра, — запропонував Професор. — Це важливий етап у розробці будь-якої програми.
Він на мить замовк і з натхненням прочитав:
Кожний промінь серця є твоїм прибутком, —
Випромінюй лагідне життя!
Обирати краще значить краще бути —
Жизнь — для всех великая игра.
Кожний помічає те, у що він грає,
Спокій відбере кохана гра.
Намір відновити особливість має,
Складності та стіни вигада.
Поиграть азартно время приглашает,
Предлагая множество ролей.
Игроков с лихвою жизнь вознаграждает
Воплощеньем творческих идей!
Професор взяв маркер і почав писати на дошці:
План гри "Вгадай число":
Комп'ютер загадує випадкове число від 1 до 100.
Гравець намагається вгадати це число.
Комп'ютер повідомляє, більше чи менше загадане число.
Гравець продовжує вгадувати, поки не знайде правильну відповідь.
Після вгадування комп'ютер повідомляє, скільки спроб знадобилося гравцеві.

— Звучить просто, але буде цікаво грати! — сказала Аліса. — Із чого почнемо?
— Почнемо з імпорту потрібних бібліотек і визначення основних змінних, — відповів Професор і написав перші рядки коду:
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 — створюємо змінну-прапорець (boolean), яка показує, чи вгадано число.
while not вгадано: — цикл виконуватиметься, поки число не вгадано.
припущення = int(input("Твоє припущення: ")) — отримуємо число від гравця і перетворюємо його з тексту на ціле число (int).
спроби += 1 — збільшуємо лічильник спроб на 1.
Далі йде перевірка умов: чи число менше, чи більше, чи дорівнює загаданому.
f"Вітаю! Ти вгадав число за {спроби} спроб!" — це f-рядок (відформатований рядок), спеціальний запис, який дозволяє вставляти значення змінних прямо в текст.
— А якщо гравець введе не число, а букву? — запитала Аліса.
— Влучне запитання! — похвалив Професор. — Наша програма видасть помилку під час виконання і закриється. Давай додамо обробку винятків, щоб зробити її більш надійною:
python
Основний цикл гри
вгадано = Falsewhile not вгадано:
try:
# Отримуємо припущення гравця
припущення = int(input("Твоє припущення: "))
спроби += 1
# Перевіряємо припущення
if припущення < загадане_число:
print("Загадане число більше!")
elif припущення > загадане_число:
print("Загадане число менше!")
else:
вгадано = True
print(f"Вітаю! Ти вгадав число за {спроби} спроб!")
except ValueError:
print("Будь ласка, введи ціле число!")
— Блок try-except допоможе програмі коректно обробляти помилки, — пояснив Професор. — Якщо гравець введе щось, що не можна перетворити на число, програма не завершиться з помилкою, а виведе зрозуміле повідомлення.
— А можна додати підказки, якщо гравець довго не може вгадати? — запитала Аліса.
— Звичайно! — Професор доповнив код:
python
Основний цикл гри
вгадано = Falsewhile not вгадано:
try:
# Отримуємо припущення гравця
припущення = int(input("Твоє припущення: "))
спроби += 1
# Перевіряємо припущення
if припущення < загадане_число:
print("Загадане число більше!")
if спроби % 5 == 0: # Підказка кожні 5 спроб
print(f"Підказка: загадане число більше ніж {припущення + 10}")
elif припущення > загадане_число:
print("Загадане число менше!")
if спроби % 5 == 0: # Підказка кожні 5 спроб
print(f"Підказка: загадане число менше ніж {припущення - 10}")
else:
вгадано = True
print(f"Вітаю! Ти вгадав число за {спроби} спроб!")
except ValueError:
print("Будь ласка, введи ціле число!")
— Давай додамо ще одну приємну деталь — можливість зіграти ще раз і зберегти найкращий результат, — запропонував Професор:
python
Функція для однієї гри
def зігративгру():
загадане_число = random.randint(1, 100)
спроби = 0
вгадано = False print("\nЯ загадав число від 1 до 100. Спробуєш вгадати?")
while not вгадано:
try:
припущення = int(input("Твоє припущення: "))
спроби += 1
if припущення < загадане_число:
print("Загадане число більше!")
if спроби % 5 == 0:
print(f"Підказка: загадане число більше ніж {припущення + 10}")
elif припущення > загадане_число:
print("Загадане число менше!")
if спроби % 5 == 0:
print(f"Підказка: загадане число менше ніж {припущення - 10}")
else:
вгадано = True
print(f"Вітаю! Ти вгадав число за {спроби} спроб!")
except ValueError:
print("Будь ласка, введи ціле число!")
return спроби
Основна програма
print("Ласкаво просимо в гру 'Вгадай число'!")
грати_знову = "так"найкращий_результат = float('inf') # Нескінченність, щоб перший же результат став рекордом
while грати_знову.lower() == "так":
результат = зігративгру()
if результат < найкращий_результат:
найкращий_результат = результат
print(f"Новий рекорд! {результат} спроб!")
грати_знову = input("Хочеш зіграти ще раз? (так/ні): ")
print(f"Дякую за гру! Твій найкращий рекорд: {найкращий_результат} спроб.")
— Ми створили функцію зігративгру(), яка містить логіку однієї гри, і основний цикл while, який дозволяє грати кілька разів поспіль, — пояснив Професор. — Крім того, ми додали відстеження найкращого результату.
— Це приголомшливо! — вигукнула Аліса. — Можна спробувати?
Професор запустив програму, і Аліса почала грати. Після кількох спроб вона вгадала число і захоплено заплескала в долоні.

— Я зробила це! Я створила справжню гру!
— Технічно, ми створили її разом, — посміхнувся Професор, — але суть ти вловила правильно. Це справжня програма, і тепер ти можеш пишатися собою!
— А можна якось покращити цю гру? — запитала Аліса після кількох раундів.
— Звичайно! — кивнув Професор. — Ось кілька ідей для покращення:
Додати рівні складності (різні діапазони чисел).
Обмежити кількість спроб.
Додати таймер.
Створити режим для двох гравців.
Додати графічний інтерфейс.
— Це буде наступним кроком у твоїй подорожі світом програмування, — додав Професор. — Почавши з простої гри, ти можеш поступово ускладнювати її, додаючи нові функції та можливості.