Како направити игру погађања бројева у Питхон-у?

Већ сте требали да претпоставите садржај овог чланка. И вероватно би требало да сте упознати са погађањем бројева и тражењем начина да га направите користећи Питхон.

Хајде да научимо да креирамо игру погађања бројева од нуле.

Игра погађања бројева

Игра је једноставна. Корисник мора да погоди насумично генерисан број који се налази између опсега од 1 до 100. То је то.

Да ли је игра тако једноставна?

Да, то је.

Али, постоји једна ствар коју морамо да пружимо корисницима да погоде број. То су наговештаји. Морамо да пружимо поруку кориснику да је тренутни нагађани број мањи од тачног броја или да је тренутни погодјени број већи од тачног броја. Тако да ће корисници знати у ком правцу морају да иду.

Можемо га учинити узбудљивијим додавањем додатних функција као што су максимални број шанси за погађање, повећање домета, подешавање тајмера итд.,

Израда основне радне игре је обавезна. Након тога, можемо додати још функција као што је дискутовано. Дакле, креираћемо основну верзију игре у овом одељку. А онда ћемо прећи на додавање нових функција.

Желим да покушате да креирате игру без слепог копирања кода. Дакле, прво ћу објаснити алгоритам. То ће вам помоћи да сами кодирате или брзо разумете код.

Хајде да видимо алгоритам за креирање игре погађања бројева.

Алгоритам

Уверите се да разумете алгоритам пре него што пређете на део кодирања.

  • Дефинишите опсег бројева. Подразумевано је 1-100, али можете да га промените како желите.
  • Генеришите насумични цео број из горњег опсега (1-100).
  • Започните игру тако што ћете кориснику приказати поруку „Погоди број од Кс до И“. Можете ажурирати поруку како желите.
  • Иницијализујте променљиву на 0 да бисте пребројали укупан број шанси које је корисник искористио да тачно погоди број.
  • Напишите бесконачну петљу.
    • Замолите корисника да погоди број.
    • Ако је тренутни нагађани број једнак насумично генерисаном броју, онда честитајте кориснику поруком како желите. Пример би био „-> Ура! Добили сте то у 5 корака!
    • Прекините петљу након честитања кориснику.
    • Ако је тренутни нагађани број мањи од насумично генерисаног броја, дајте кориснику поруку „-> Ваш број је мањи од случајног броја“ или прилагођену поруку која има исто значење.
    • Ако је тренутни нагађани број већи од насумично генерисаног броја, онда дајте поруку кориснику са „-> Ваш број је већи од случајног броја“ или обичај са истим значењем.
    • Коначно, повећајте шансе које је корисник искористио да погоди.
  Како пронаћи инсталирану верзију и архитектуру ИБМ ХТТП сервера?

Имали бисте код у глави након што сте видели алгоритам. Не брините чак и ако не добијете комплетан код. Али, уверите се да разумете горњи алгоритам.

Време је да добијемо руке да радимо са кодом. Уђите у код без даљег одлагања.

Код

Да ли сте покушали да напишете код?

Ако јесте и завршио. То је супер. Погледајте код и разумејте га да бисте свом знању додали више перспектива.

Не брините чак и ако нисте написали код. Погледајте код испод и разумејте га. Покушајте да га прилагодите и напишете на свој начин ради бољег разумевања.

Дакле, да видимо код.

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()

Постоје неке ствари које разумете из кода.

  • Опсег је дефинисан унутар методе __инит__ тако да се може користити у методама класе.
  • Лако га можемо променити на једном месту које се сходно томе мења у апликацији.
  • Постоји посебан метод за генерисање случајног броја који прати принцип „раздвојите бриге“. Овде наш метод има мало кода, али би се могао повећати у будућности.
  • Коначно, користили смо класу тако да ће сваки метод који се односи на игру налазити унутар ње. И лако се може поново користити у неким другим апликацијама.
  Како добити филтер без браде на ТикТок-у

Све тачке о којима се горе говори односе се на писање чистог кода. Требало би да покушамо да напишемо чист код који разумете чак и након неких Кс година.

Пример излаза игре изгледа овако.

$ 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!

Претпостављам да имате инсталиран Питхон да бисте испробали горњи код.

Ектра Феатуре

Додаћемо максималан број шанси за које корисник може да погоди број. Ако корисник не погоди број у оквиру броја шанси, онда корисник губи.

Како да га додамо?

То је једноставан процес у два корака. Да видимо кораке.

  • Дефинишите максималан број шанси да корисник погоди број.
  • Проверите да ли корисник има шансе или не пре него што затражи унос. И завршите игру ако је корисник ван датих шанси.

Следећи додатни код ће употпунити функцију.

  • Додајте следећи код унутар методе __инит__.
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

Ура! додали смо додатну функцију нашој игри. То ипак није крај. Можете додати још неке функције да бисте га учинили привлачнијим за кориснике. Сада је твоје време. Само напред и учините га лепшим :).

  10 најбоље опреме за видео конференције за мала предузећа [2023]

Закључак

Направили смо једноставну игру погађања бројева. Сада је ваш ред да размислите о игрицама које сте играли када сте били млади. Направите их користећи програмски језик и поделите са пријатељима. Већину наших игара из детињства можемо дигитализовати.

Затим истражите Питхон ИДЕ и онлајн компајлер да бисте покренули Питхон код.

Срећно кодирање 🙂

Ако се не можете заситити вирусних игара речима, ево како да будете бољи у Вордле-у.

Да ли сте уживали у читању чланка? Шта кажете на дељење са светом?