Hogyan készítsünk számkitaláló játékot Pythonban?

Már ki kellett találnia ennek a cikknek a tartalmát. És valószínűleg ismernie kell a számkitalálást, és keresnie kell a módját, hogy Python segítségével építse fel.

Tanuljunk meg számkitalálós játékot létrehozni a semmiből.

Számkitalálós játék

A játék egyszerű. A felhasználónak ki kell találnia a véletlenszerűen generált számot, amely 1 és 100 között van. Ennyi.

Ilyen egyszerű a játék?

Igen, ez az.

Van azonban egy dolog, amit meg kell adnunk a felhasználóknak, hogy kitalálják a számot. Ez tipp. Üzenetet kell küldenünk a felhasználónak, hogy az aktuális kitalált szám kisebb, mint a helyes szám, vagy az aktuális kitalált szám nagyobb, mint a helyes szám. Hogy a felhasználók tudják, melyik irányba kell menniük.

Extra funkciók hozzáadásával izgalmasabbá tehetjük, mint például a tippelési esélyek maximális száma, a hatótáv növelése, az időzítő beállítása stb.,

Az alap munkajáték elkészítése kötelező. Ezt követően a megbeszéltek szerint további funkciókat adhatunk hozzá. Tehát ebben a részben a játék alapverzióját fogjuk létrehozni. Ezután új funkciókat adunk hozzá.

Azt akarom, hogy próbálja meg létrehozni a játékot a kód vak másolása nélkül. Tehát először elmagyarázom az algoritmust. Segít a kódolásban vagy a kód gyors megértésében.

Lássuk a Számkitalálós játék létrehozásának algoritmusát.

Algoritmus

Győződjön meg arról, hogy megértette az algoritmust, mielőtt a kódolási részre lép.

  • Határozza meg a számok tartományát. Alapértelmezés szerint 1-100, de tetszés szerint módosíthatja.
  • Hozzon létre egy véletlenszerű egész számot a fenti tartományból (1-100).
  • Indítsa el a játékot a „Találd ki a számot X-től Y-ig” üzenet megjelenítésével a felhasználó számára. Az üzenetet tetszés szerint frissítheti.
  • Inicializáljon egy változót 0-ra, hogy megszámolja, hány esélye volt a felhasználónak a szám helyes kitalálására.
  • Írj egy végtelen ciklust.
    • Kérje meg a felhasználót, hogy találja ki a számot.
    • Ha az aktuális kitalált szám megegyezik a véletlenszerűen generált számmal, akkor gratuláljon a felhasználónak egy üzenettel, ahogy tetszik. Példa erre: „-> Hurrá! 5 lépésben megkaptad!”.
    • Szakítsa meg a hurkot, miután gratulált a felhasználónak.
    • Ha az aktuális kitalált szám kisebb, mint a véletlenszerűen generált szám, akkor adjon üzenetet a felhasználónak, hogy „-> Az Ön száma kisebb, mint a véletlen szám”, vagy egy azonos jelentésű egyéni üzenetet.
    • Ha az aktuális kitalált szám nagyobb, mint a véletlenszerűen generált szám, akkor küldjön üzenetet a felhasználónak, hogy „-> Az Ön száma nagyobb, mint a véletlen szám”, vagy egy azonos jelentésű szokást.
    • Végül növelje a felhasználó által a kitalálás esélyét.
  A 12 legjobb offline játék Androidra

Az algoritmus megtekintése után kódot kaptál volna a fejedben. Ne aggódjon, még akkor sem, ha nem kapja meg a teljes kódot. De ügyeljen arra, hogy megértse a fenti algoritmust.

Ideje rávenni a kezünket a kóddal való munkára. Minden további nélkül lépjen be a kódba.

Kód

Próbáltad írni a kódot?

Ha igen, és befejezte. Ez nagyszerű. Tekintse meg a kódot, és értse meg, hogy további szempontokat adjon tudásának.

Ne aggódjon, még akkor sem, ha nem Ön írta a kódot. Tekintse meg az alábbi kódot és értse meg. A jobb megértés érdekében próbálja meg a saját módján módosítani és leírni.

Tehát lássuk a kódot.

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

Van néhány dolog, amit megért a kódból.

  • A tartomány az __init__ metóduson belül van meghatározva, így az osztálymetódusokon keresztül használható.
  • Könnyen módosíthatjuk egy helyen, amely ennek megfelelően változik az alkalmazáson belül.
  • Külön módszer létezik a véletlen szám generálására, amely a „külön aggályokat” elvét követi. Itt a módszerünknek kevés kódja van, de a jövőben növekedhet.
  • Végül az osztályt használtuk, hogy minden, a játékhoz kapcsolódó metódus benne legyen. És könnyen újrafelhasználható néhány más alkalmazásban.
  3 módszer az Androidon telepített alkalmazás verziójának megtalálására

Az összes fent tárgyalt pont a tiszta kód írására vonatkozik. Meg kell próbálnunk olyan tiszta kódot írni, amelyet még néhány X év után is megért.

A játék minta kimenete a következőképpen néz ki.

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

Feltételezem, hogy telepítve van a Python a fenti kód kipróbálásához.

Extra funkció

Összeadjuk, hogy a felhasználó hány esélyt talál ki a számra. Ha a felhasználó nem találja ki a számot az esélyek számán belül, akkor a felhasználó veszít.

Hogyan adjuk hozzá?

Ez egy egyszerű, kétlépéses folyamat. Lássuk a lépéseket.

  • Határozza meg, hány esélye van a felhasználónak a szám kitalálására.
  • A bevitel kérése előtt ellenőrizze, hogy a felhasználónak van-e esélye vagy sem. És fejezze be a játékot, ha a felhasználónak nincs esélye.

A következő további kód kiegészíti a funkciót.

  • Adja hozzá a következő kódot az __init__ metóduson belül.
self.MAX_CHANCES = 10
  • Adja hozzá a következő feltételt, mielőtt a felhasználó megadja a következő tippet.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Most próbálja ki a játékot anélkül, hogy kitalálná a helyes számot. Hasonló kimenetet kell látnia az alábbiak szerint.

$ 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

Hurrá! egy extra funkciót adtunk a játékunkhoz. Ez azonban nem a vég. Hozzáadhat néhány további funkciót, hogy vonzóbbá tegye a felhasználókat. Most a te időd. Hajrá és tedd szebbé :).

  A SHINE For Reddit egy olyan bőr, amely kizárólag a tartalomra összpontosít [Chrome]

Következtetés

Létrehoztunk egy egyszerű számkitalálós játékot. Most rajtad a sor, hogy azokra a játékokra gondoljon, amelyeket fiatalon játszott. Készítse el őket programozási nyelv használatával, és ossza meg barátaival. Gyermekkori játékaink nagy részét digitalizálhatjuk.

Ezután fedezze fel a Python IDE-t és az online fordítót a Python-kód futtatásához.

Boldog kódolást 🙂

Ha nem tudsz betelni a vírusos szójátékokkal, a következőképpen járhatsz el jobban a Wordle-ben.

Élvezettel olvastad a cikket? Mit szólnál a világgal való megosztáshoz?