Як створити гру на вгадування чисел на Python?

Ви вже повинні були здогадатися про зміст цієї статті. І ви, ймовірно, повинні бути знайомі з вгадуванням чисел і шукати спосіб створити це за допомогою Python.

Давайте навчимося створювати гру на вгадування чисел з нуля.

Гра «Вгадай числа».

Гра проста. Користувач повинен вгадати випадково згенероване число, яке лежить у діапазоні від 1 до 100. Ось і все.

Гра така проста?

Так, це так.

Але є одна річ, яку ми повинні надати користувачам, щоб вгадати число. Це натяки. Ми повинні надати користувачеві повідомлення про те, що поточне вгадане число менше за правильне число або поточне вгадане число більше за правильне число. Щоб користувачі знали, в якому напрямку їм рухатися.

Ми можемо зробити це більш захоплюючим, додавши додаткові функції, як-от максимальну кількість шансів вгадати, збільшивши діапазон, налаштувавши таймер тощо,

Створення базової робочої гри є обов’язковим. Після цього ми можемо додати більше функцій, як обговорювалося. Отже, ми збираємося створити базову версію гри в цьому розділі. А потім ми перейдемо до додавання нових функцій.

Я хочу, щоб ви спробували створити гру без сліпого копіювання коду. Отже, я збираюся спочатку пояснити алгоритм. Це допоможе вам самостійно кодувати або швидко зрозуміти код.

Розглянемо алгоритм створення гри «Вгадування чисел».

Алгоритм

Переконайтеся, що ви розумієте алгоритм, перш ніж переходити до частини кодування.

  • Визначте діапазон чисел. За замовчуванням це 1-100, але ви можете змінити його на свій розсуд.
  • Згенеруйте випадкове ціле число з наведеного вище діапазону (1-100).
  • Почніть гру, показавши користувачеві повідомлення «Вгадай число від X до Y». Ви можете оновити повідомлення як забажаєте.
  • Ініціалізуйте змінну значенням 0, щоб підрахувати загальну кількість шансів, які користувач використав, щоб правильно вгадати число.
  • Напишіть нескінченний цикл.
    • Попросіть користувача вгадати число.
    • Якщо поточне вгадане число дорівнює випадково згенерованому числу, то привітайте користувача повідомленням, як вам подобається. Прикладом може бути «-> Ура! Ви отримали це за 5 кроків!».
    • Розірвати цикл після привітання користувача.
    • Якщо поточне вгадане число менше, ніж випадково згенероване число, надішліть користувачеві повідомлення «-> Ваше число менше, ніж випадкове число» або спеціальне повідомлення з тим самим значенням.
    • Якщо поточне вгадане число більше, ніж випадково згенероване число, надішліть користувачеві повідомлення «-> Ваше число більше, ніж випадкове число» або звичай із тим самим значенням.
    • Нарешті, збільшити шанси, які користувач використав для вгадування.
  Чи можете ви отримати кілька облікових записів користувачів на iPad?

Побачивши алгоритм, ви б запам’ятали код. Не хвилюйтеся, навіть якщо ви не отримаєте повний код. Але переконайтеся, що ви розумієте наведений вище алгоритм.

Настав час взятися за роботу з кодом. Ознайомтеся з кодом без зайвих слів.

Код

Ви пробували написати код?

Якщо так, і завершив його. Це чудово. Перегляньте код і зрозумійте його, щоб додати більше перспектив до своїх знань.

Не хвилюйтеся, навіть якщо ви не писали код. Перегляньте наведений нижче код і зрозумійте його. Спробуйте налаштувати та написати це по-своєму для кращого розуміння.

Отже, дивимося код.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Є деякі речі, які ви розумієте з коду.

  • Діапазон визначається всередині методу __init__, щоб його можна було використовувати в методах класу.
  • Ми можемо легко змінити це в одному місці, яке відповідно змінюється в додатку.
  • Існує окремий метод генерації випадкового числа, який дотримується принципу «відокремте проблеми». Тут наш метод містить мало коду, але в майбутньому його може збільшитися.
  • Нарешті, ми використали клас, щоб кожен метод, пов’язаний з грою, містився в ньому. І його можна легко повторно використовувати в деяких інших програмах.
  Вступ до багатоканальної маркетингової платформи для малого та середнього бізнесу

Усі пункти, які обговорювалися вище, стосуються написання чистого коду. Ми повинні спробувати написати чистий код, який ви зрозумієте навіть через X років.

Приклад результату гри виглядає наступним чином.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

Я припускаю, що у вас встановлено Python, щоб спробувати наведений вище код.

Додаткова функція

Ми збираємося додати максимальну кількість шансів, які користувач отримує, щоб вгадати число. Якщо користувач не вгадає число в межах кількості шансів, він програє.

Як ми це додаємо?

Це простий двоетапний процес. Давайте подивимося кроки.

  • Визначте максимальну кількість шансів, які користувач отримує, щоб вгадати число.
  • Перш ніж запитувати введення, перевірте, чи є у користувача шанси. І завершити гру, якщо у користувача вичерпано наданих шансів.

Наступний додатковий код доповнить функцію.

  • Додайте наступний код у метод __init__.
self.MAX_CHANCES = 10
  • Додайте наступну умову, перш ніж користувач введе наступне припущення.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Тепер спробуйте гру, не вгадуючи правильне число. Ви повинні побачити подібний результат, як показано нижче.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

Ура! ми додали до нашої гри додаткову функцію. Але це ще не кінець. Ви можете додати ще деякі функції, щоб зробити його більш привабливим для користувачів. Настав ваш час. Вперед і зробіть його красивішим :).

  Як увімкнути багатопроцесорність у Firefox прямо зараз

Висновок

Ми створили просту гру на вгадування чисел. Тепер ваша черга згадати ігри, в які ви грали в дитинстві. Зробіть їх за допомогою мови програмування та поділіться з друзями. Ми можемо оцифрувати більшість наших дитячих ігор.

Далі вивчіть Python IDE та онлайн-компілятор для запуску коду Python.

Щасливого кодування 🙂

Якщо ви не можете насолоджуватися вірусними іграми в слова, ось як краще працювати в Wordle.

Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?