Jak vytvořit hru na hádání čísel v Pythonu?

Obsah tohoto článku jste již měli uhodnout. A pravděpodobně byste měli být obeznámeni s hádáním čísel a hledáním způsobu, jak je sestavit pomocí Pythonu.

Naučme se vytvořit hru na hádání čísel od nuly.

Hra na hádání čísel

Hra je jednoduchá. Uživatel musí uhodnout náhodně vygenerované číslo, které leží v rozmezí od 1 do 100. To je vše.

Je hra tak jednoduchá?

Ano, je.

Ale je tu jedna věc, kterou musíme uživatelům poskytnout, aby číslo uhodli. To jsou rady. Musíme uživateli poskytnout zprávu, že aktuální uhádnuté číslo je menší než správné číslo nebo je aktuální uhádnuté číslo větší než správné číslo. Aby uživatelé věděli, kterým směrem se mají vydat.

Můžeme to udělat více vzrušující přidáním dalších funkcí, jako je maximální počet šancí na uhodnutí, zvýšení dosahu, nastavení časovače atd.,

Vytvoření základní pracovní hry je povinné. Poté můžeme přidat další funkce, jak bylo uvedeno. V této sekci tedy vytvoříme základní verzi hry. A pak se přesuneme k přidání nových funkcí.

Chci, abyste zkusili vytvořit hru bez slepého kopírování kódu. Nejprve tedy vysvětlím algoritmus. Pomůže vám kódovat sami nebo rychle kód pochopit.

Podívejme se na algoritmus k vytvoření hry na hádání čísel.

Algoritmus

Než přejdete k části kódování, ujistěte se, že rozumíte algoritmu.

  • Definujte rozsah čísel. Ve výchozím nastavení je to 1-100, ale můžete to změnit, jak chcete.
  • Vygenerujte náhodné celé číslo z výše uvedeného rozsahu (1-100).
  • Spusťte hru zobrazením zprávy uživateli „Hádej číslo od X do Y“. Zprávu můžete libovolně aktualizovat.
  • Inicializujte proměnnou na 0, abyste spočítali celkový počet šancí, které uživatel využil, aby číslo správně uhádl.
  • Napište nekonečnou smyčku.
    • Požádejte uživatele, aby uhádl číslo.
    • Pokud se aktuální uhodnuté číslo rovná náhodně vygenerovanému číslu, poblahopřejte uživateli zprávou, jak chcete. Příkladem může být „-> Hurá! Máte to v 5 krocích!“
    • Po blahopřání uživateli přerušte smyčku.
    • Pokud je aktuální uhodnuté číslo menší než náhodně vygenerované číslo, dejte uživateli zprávu „-> Vaše číslo je menší než náhodné číslo“ nebo vlastní zprávu se stejným významem.
    • Pokud je aktuální uhodnuté číslo větší než náhodně vygenerované číslo, dejte uživateli zprávu „-> Vaše číslo je větší než náhodné číslo“ nebo zvyk se stejným významem.
    • Nakonec zvyšte pravděpodobnost, že uživatel uhodne.

Po zhlédnutí algoritmu byste měli ve své mysli kód. Nemějte obavy, i když nedostanete úplný kód. Ujistěte se však, že rozumíte výše uvedenému algoritmu.

Je čas přimět ruce k práci s kódem. Dostaňte se do kódu bez dalších okolků.

Kód

Zkoušel jsi napsat kód?

Pokud ano a dokončil. To je skvělé. Prohlédněte si kód a pochopte jej, abyste do svých znalostí přidali další perspektivy.

Nebojte se, i když jste kód nenapsali. Podívejte se na níže uvedený kód a pochopte jej. Zkuste si to pro lepší pochopení vyladit a napsat po svém.

Pojďme se tedy podívat na kód.

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

Některé věci z kódu pochopíte.

  • Rozsah je definován uvnitř metody __init__, takže jej lze použít napříč metodami třídy.
  • Můžeme to snadno změnit na jednom místě, které se odpovídajícím způsobem změní v celé aplikaci.
  • Pro generování náhodného čísla existuje samostatná metoda, která se řídí zásadou „oddělit obavy“. Zde má naše metoda málo kódu, ale v budoucnu se může zvýšit.
  • Nakonec jsme použili třídu, takže každá metoda, která souvisí s hrou, bude umístěna v ní. A lze jej snadno znovu použít v některých dalších aplikacích.

Všechny body, které jsou probrány výše, se týkají psaní čistého kódu. Měli bychom se pokusit napsat čistý kód, kterému rozumíte i po nějakých X letech.

Ukázkový výstup hry vypadá následovně.

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

Předpokládám, že máte nainstalovaný Python, abyste vyzkoušeli výše uvedený kód.

Extra funkce

Přidáme maximální počet šancí, které uživatel dostane, aby číslo uhádl. Pokud uživatel neuhodne číslo v rámci počtu šancí, pak uživatel prohrává.

Jak to přidáme?

Je to jednoduchý dvoukrokový proces. Podívejme se na kroky.

  • Definujte maximální počet šancí, které uživatel dostane, aby uhádl číslo.
  • Než požádáte o vstup, zkontrolujte, zda má uživatel šanci nebo ne. A ukončit hru, pokud uživatel nevyužije dané šance.

Následující dodatečný kód funkci dokončí.

  • Přidejte následující kód do metody __init__.
self.MAX_CHANCES = 10
  • Přidejte následující podmínku, než uživatel zadá další odhad.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Nyní zkuste hru, aniž byste uhodli správné číslo. Měli byste vidět podobný výstup následovně.

$ 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

Hurá! přidali jsme do naší hry další funkci. Však to není konec. Můžete přidat některé další funkce, aby byla pro uživatele poutavější. Teď je tvůj čas. Jen tak dál a udělejte to krásnější :).

Závěr

Vytvořili jsme jednoduchou hru na hádání čísel. Nyní je řada na vás, abyste si vzpomněli na hry, které jste hráli, když jste byli mladí. Vytvořte je pomocí programovacího jazyka a sdílejte je se svými přáteli. Většinu našich dětských her můžeme digitalizovat.

Dále prozkoumejte Python IDE a online kompilátor pro spuštění kódu Pythonu.

Veselé kódování 🙂

Pokud se virálních slovních hříček nemůžete nabažit, zde je návod, jak si ve Wordle počínat lépe.

Užili jste si čtení článku? Co takhle sdílet se světem?