Как да създадете игра за отгатване на числа в Python?

Трябва вече да сте се досетили за съдържанието на тази статия. И вероятно трябва да сте запознати с отгатването на числа и да търсите начин да го създадете с помощта на Python.

Нека се научим да създаваме игра за отгатване на числа от нулата.

Игра за отгатване на числа

Играта е проста. Потребителят трябва да познае произволно генерираното число, което се намира между диапазона от 1 до 100. Това е всичко.

Толкова ли е проста играта?

Да, това е.

Но има едно нещо, което трябва да предоставим на потребителите, за да познаят номера. Това са намеци. Трябва да предоставим съобщение на потребителя, че текущото познато число е по-малко от правилното число или текущото познато число е по-голямо от правилното число. Така че потребителите ще знаят в каква посока трябва да вървят.

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

Създаването на основна работеща игра е задължително. След това можем да добавим още функции, както беше обсъдено. И така, ние ще създадем основната версия на играта в този раздел. И тогава ще преминем към добавяне на нови функции.

Искам да опитате да създадете играта, без да копирате сляпо кода. И така, първо ще обясня алгоритъма. Това ще ви помогне да кодирате сами или да разберете кода бързо.

Нека видим алгоритъма за създаване на играта за отгатване на числа.

Алгоритъм

Уверете се, че разбирате алгоритъма, преди да преминете към частта за кодиране.

  • Определете обхвата на числата. По подразбиране е 1-100, но можете да го промените, както предпочитате.
  • Генерирайте произволно цяло число от горния диапазон (1-100).
  • Стартирайте играта, като покажете на потребителя съобщение, което гласи „Познайте числото от X до Y“. Можете да актуализирате съобщението, както желаете.
  • Инициализирайте променлива на 0, за да преброите общия брой шансове, които потребителят е предприел, за да познае правилно числото.
  • Напишете безкраен цикъл.
    • Помолете потребителя да познае числото.
    • Ако текущото познато число е равно на произволно генерираното число, тогава поздравете потребителя със съобщение, както желаете. Пример би бил „-> Ура! Получихте го в 5 стъпки!”.
    • Прекъснете цикъла, след като поздравите потребителя.
    • Ако текущото познато число е по-малко от произволно генерираното число, тогава дайте съобщение на потребителя, казващо „-> Вашето число е по-малко от произволното число“ или персонализирано съобщение със същото значение.
    • Ако текущото познато число е по-голямо от произволно генерираното число, тогава дайте съобщение на потребителя, казващо „-> Вашето число е по-голямо от произволното число“ или персонализирано със същото значение.
    • И накрая, увеличете шансовете, които потребителят е поел да познае.
  12 най-добри електрически скейтборда, които трябва да вземете веднага

Ще имате код в ума си, след като сте видели алгоритъма. Не се притеснявайте дори и да не получите пълния код. Но се уверете, че разбирате горния алгоритъм.

Време е да накараме ръцете си да работят с код. Влезте в кода без допълнителни приказки.

Код

Опитахте ли да напишете кода?

Ако да и го завърших. Чудесно е. Вижте кода и го разберете, за да добавите повече перспективи към знанията си.

Не се притеснявайте дори ако не сте написали кода. Вижте кода по-долу и го разберете. Опитайте се да го промените и да го напишете по ваш собствен начин за по-добро разбиране.

И така, нека да видим кода.

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__, така че да може да се използва в методите на класа.
  • Можем лесно да го променим на едно място, което се променя съответно в приложението.
  • Има отделен метод за генериране на произволно число, който следва принципа на „разделяне на проблемите“. Тук нашият метод има малко код, но може да се увеличи в бъдеще.
  • И накрая, използвахме клас, така че всеки метод, който е свързан с играта, да се намира вътре в него. И може лесно да се използва повторно в някои други приложения.
  Как да изтрия контакт във Viber

Всички точки, обсъдени по-горе, са свързани с писането на чист код. Трябва да се опитаме да напишем чистия код, който вие разбирате дори след няколко 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

ура! добавихме допълнителна функция към нашата игра. Това обаче не е краят. Можете да добавите още някои функции, за да го направите по-ангажиращ за потребителите. Сега е вашето време. Давай напред и го направи още по-красив :).

  55 най-добри приложения за Mac OS X за 2021 г

Заключение

Създадохме проста игра за отгатване на числа. Сега е ваш ред да помислите за игри, които сте играли, когато сте били млади. Направете ги с помощта на език за програмиране и споделете с приятелите си. Можем да дигитализираме повечето игри от детството си.

След това разгледайте Python IDE и онлайн компилатора, за да стартирате Python код.

Приятно кодиране 🙂

Ако не можете да се наситите на вирусни игри с думи, ето как да се справите по-добре с Wordle.

Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?