📖 Зміст
Частина 1: Світ програмування навколо нас
Частина 2: Алфавіт і словник програмування
Частина 3: Будуємо перші програми
Частина 4: Наш дивовижний мозок
Частина 5: Творчі проекти
Частина 6: Програмування в реальному світі
Частина 7: Від електрики до штучного інтелекту
Глава 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
Основний цикл гри
вгадано = False
while not вгадано:
# Отримуємо припущення гравця
припущення = int(input("Твоє припущення: "))
спроби += 1 # Перевіряємо припущення
if припущення < загадане_число:
print("Загадане число більше!")
elif припущення > загадане_число:
print("Загадане число менше!")
else:
вгадано = True
print(f"Вітаю! Ти вгадав число за {спроби} спроб!")
— Давай розберемо цей код по частинах, — запропонував Професор:
1. вгадано = False — створюємо змінну-прапорець, яка показує, чи вгадано число
2. while not вгадано: — цикл виконуватиметься, поки число не вгадано
3. припущення = int(input("Твоє припущення: ")) — отримуємо введення від гравця і перетворюємо його на ціле число
4. спроби += 1 — збільшуємо лічильник спроб на 1
5. Далі йде перевірка умов: якщо число менше, більше або дорівнює загаданому
6. f"Вітаю! Ти вгадав число за {спроби} спроб!" — це f-рядок, спеціальний формат рядка, який дозволяє вставляти значення змінних прямо в текст
— А якщо гравець введе не число, а букву? — запитала Аліса.
— Відмінне питання! — похвалив Професор. — Наша програма видасть помилку. Давай додамо обробку винятків, щоб зробити її більш надійною:
python
Основний цикл гри
вгадано = False
while not вгадано:
try:
# Отримуємо припущення гравця
припущення = int(input("Твоє припущення: "))
спроби += 1 # Перевіряємо припущення
if припущення < загадане_число:
print("Загадане число більше!")
elif припущення > загадане_число:
print("Загадане число менше!")
else:
вгадано = True
print(f"Вітаю! Ти вгадав число за {спроби} спроб!")
except ValueError:
print("Будь ласка, введи ціле число!")
— Блок try-except допоможе програмі коректно обробляти помилки, — пояснив Професор. — Якщо гравець введе щось, що не можна перетворити на число, програма не завершиться з помилкою, а виведе зрозуміле повідомлення.
— А можна додати підказки, якщо гравець довго не може вгадати? — запитала Аліса.
— Звичайно! — Професор доповнив код:
python
Основний цикл гри
вгадано = False
while 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"Дякую за гру! Твій найкращий результат: {найкращий_результат} спроб.")
— Ми створили функцію зігративгру(), яка містить логіку одної гри, і основний цикл, який дозволяє грати кілька разів, — пояснив Професор. — Крім того, ми додали відстеження найкращого результату.
— Це приголомшливо! — вигукнула Аліса. — Можна спробувати?
Професор запустив програму, і Аліса почала грати. Після кількох спроб вона вгадала число і захоплено захлопала в долоні.

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