Створення гри “Вгадай число” на Python: Повний посібник
Зміст цієї статті, ймовірно, вже не є для вас несподіванкою. Можливо, ви вже знайомі з ідеєю вгадування чисел і шукаєте спосіб реалізувати це за допомогою Python.
Давайте разом пройдемо шлях створення гри “Вгадай число” з самого початку.
Основи гри
Концепція гри досить проста. Комп’ютер генерує випадкове число в діапазоні від 1 до 100, а завдання гравця – вгадати це число. Звучить нескладно, чи не так?
Так, все дійсно просто.
Проте, щоб гра була цікавою, користувачеві потрібно давати підказки. Наприклад, потрібно повідомляти гравця, чи його припущення є більшим або меншим за загадане число. Це дозволить гравцеві коригувати свої спроби і наближатися до правильної відповіді.
Ми можемо зробити гру більш захоплюючою, додавши додаткові функції, наприклад, обмеження кількості спроб, розширення діапазону чисел, встановлення таймера тощо.
Першим кроком є створення базової функціональної версії гри. Потім, ми зможемо додати розширені функції. Тому, в цьому розділі ми зосередимося на створенні базової версії. Після цього, ми перейдемо до розширення її можливостей.
Я заохочую вас спробувати створити гру самостійно, не копіюючи код. Тому я почну з пояснення алгоритму. Це допоможе вам у розробці коду самостійно або швидше зрозуміти код, якщо він вже буде готовий.
Алгоритм створення гри
Обов’язково розберіться з алгоритмом перед тим, як переходити до програмування.
- Визначте діапазон чисел. За замовчуванням це 1-100, але ви можете вибрати будь-який інший діапазон на ваш розсуд.
- Згенеруйте випадкове ціле число в заданому діапазоні (наприклад, від 1 до 100).
- На початку гри виведіть повідомлення для користувача, наприклад, “Вгадайте число від X до Y”. Текст повідомлення можна змінити на свій смак.
- Створіть змінну зі значенням 0 для підрахунку кількості спроб, які знадобилися користувачу, щоб вгадати число.
- Запустіть нескінченний цикл.
- Запитайте користувача, яке число він вважає правильним.
- Якщо число, назване користувачем, відповідає загаданому випадковому числу, привітайте користувача, наприклад, “Вітаємо! Ви вгадали за X спроб!”.
- Вийдіть з циклу.
- Якщо число, назване користувачем, менше за загадане число, виведіть повідомлення, наприклад, “Ваше число занадто мале”.
- Якщо число, назване користувачем, більше за загадане число, виведіть повідомлення, наприклад, “Ваше число занадто велике”.
- Збільшіть лічильник спроб.
Ознайомившись з алгоритмом, ви, ймовірно, вже можете уявити собі код. Не хвилюйтеся, якщо вам не вдасться одразу написати код. Головне, щоб ви зрозуміли наведений вище алгоритм.
Настав час переходити до коду. Давайте розглянемо його без зайвих слів.
Приклад коду на Python
Чи пробували ви вже написати свій код?
Якщо так, і вам це вдалося, чудово! Перегляньте цей код, щоб поглибити свої знання.
Якщо ви ще не писали код, не турбуйтеся. Ознайомтеся з наведеним нижче кодом і спробуйте самостійно внести зміни для кращого розуміння.
Отож, давайте подивимося на код.
import random class NumberGuessingGame: def __init__(self): ## визначення діапазону self.LOWER = 1 self.HIGHER = 100 ## метод для генерації випадкового числа def get_random_number(self): return random.randint(self.LOWER, self.HIGHER) ## метод початку гри def start(self): ## генерування випадкового числа random_number = self.get_random_number() print( f"Спробуйте вгадати випадкове число від {self.LOWER} до {self.HIGHER}") ## основна частина гри chances = 0 while True: user_number = int(input("Введіть ваше припущення: ")) if user_number == random_number: print( f"-> Чудово! Ви вгадали за {chances + 1} спроб{'и' if chances > 1 else ''}!") break elif user_number < random_number: print("-> Ваше число занадто мале") else: print("-> Ваше число занадто велике") chances += 1 ## створення екземпляру класу та початок гри numberGuessingGame = NumberGuessingGame() numberGuessingGame.start()
З коду можна винести кілька важливих моментів.
- Діапазон чисел визначено в методі __init__, щоб його можна було використовувати в інших методах класу.
- Завдяки цьому ми можемо легко змінити діапазон в одному місці, і зміни будуть автоматично застосовані до всієї програми.
- Існує окремий метод для генерації випадкового числа, який відповідає принципу “розділяй і володарюй”. Цей метод наразі містить небагато коду, але в майбутньому він може бути розширений.
- Для організації коду використовується клас, який об’єднує всі методи, пов’язані з грою. Це робить код більш структурованим і придатним для повторного використання в інших проектах.
Всі ці моменти вказують на важливість написання чистого коду. Завжди намагайтеся писати код, який буде зрозумілий навіть через довгий час.
Ось приклад результату гри:
$ python number_guessing_game.py Спробуйте вгадати випадкове число від 1 до 100 Введіть ваше припущення: 50 -> Ваше число занадто мале Введіть ваше припущення: 75 -> Ваше число занадто мале Введіть ваше припущення: 90 -> Ваше число занадто велике Введіть ваше припущення: 85 -> Ваше число занадто велике Введіть ваше припущення: 80 -> Чудово! Ви вгадали за 5 спроб!
Для запуску цього коду у вас повинен бути встановлений Python.
Розширення функціоналу
Тепер ми додамо обмеження на кількість спроб, які користувач має для вгадування числа. Якщо користувач не вгадає число за задану кількість спроб, він програє.
Як ми це зробимо?
Все досить просто. Розглянемо необхідні кроки.
- Визначимо максимальну кількість спроб, які користувач має для вгадування числа.
- Перед тим, як питати користувача про його припущення, перевіримо, чи залишилися у нього спроби. Якщо кількість спроб вичерпана, гра закінчується.
Наступний код додасть цю функцію:
- Додайте цей рядок коду в метод __init__:
self.MAX_CHANCES = 10
- Додайте наступну умову перед тим, як користувач введе своє припущення:
if chances == self.MAX_CHANCES: print("-> На жаль, ви програли. У вас закінчилися спроби") break
Тепер, спробуйте пограти, не вгадуючи правильне число. Ви повинні отримати результат, схожий на цей:
$ python number_guessing_game.py Спробуйте вгадати випадкове число від 1 до 100. У вас є 10 спроб. Введіть ваше припущення: 1 -> Ваше число занадто мале Введіть ваше припущення: 2 -> Ваше число занадто мале Введіть ваше припущення: 3 -> Ваше число занадто мале Введіть ваше припущення: 4 -> Ваше число занадто мале Введіть ваше припущення: 5 -> Ваше число занадто мале Введіть ваше припущення: 6 -> Ваше число занадто мале Введіть ваше припущення: 7 -> Ваше число занадто мале Введіть ваше припущення: 8 -> Ваше число занадто мале Введіть ваше припущення: 9 -> Ваше число занадто мале Введіть ваше припущення: 10 -> Ваше число занадто мале -> На жаль, ви програли. У вас закінчилися спроби
Чудово! Ми успішно додали додаткову функцію до нашої гри. Але це ще не кінець! Ви можете додати ще багато інших функцій, щоб зробити гру більш цікавою для користувачів. Тепер ваша черга. Розвивайте гру і робіть її ще кращою! :).
Висновок
Ми створили просту гру “Вгадай число”. Тепер ваша черга згадати ігри, в які ви грали в дитинстві. Створіть їх за допомогою мови програмування і поділіться ними з друзями. Ми можемо перевести в цифровий формат більшість наших дитячих ігор.
Далі вивчіть Python IDE та онлайн-компілятори для запуску коду Python.
Приємного кодування! 🙂
Якщо вам подобаються ігри зі словами, то ви можете дізнатися, як грати в Wordle.
Чи сподобалася вам стаття? Можливо, ви захочете поділитися нею зі світом?