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.
Tartalomjegyzék
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.
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.
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é :).
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?