Ez az egyszerű játék oktatóanyag segít gyakorolni a Python programozás alapjait.
A „Rock, Paper, Scissors” játék Pythonban létrehozása nagyszerű módja a programozási ismeretek fejlesztésének. Létrehozhatja a játékot egyetlen Python-szkripttel, és lejátszhatja a parancssorban.
A játék azzal kezdődik, hogy megkérjük a játékost, hogy válasszon „szikla”, „papír” vagy „olló”. Ezután megvárja, hogy megadják a válaszukat. A játékot egy „számítógépes” játékos ellen játszhatja, aki automatikusan kiválasztja a lépését.
A játék sok kört is tartalmazhat. Tehát még ha elveszíti is az első kört, akkor is megpróbálhat háromból kettőt megnyerni!
Hogyan állítsd be a játékot, és kérd meg a játékostól a lépést
Amikor a játék elindul, a Python programnak meg kell kérnie a játékost, hogy írja be a „rock”, „paper” vagy „scissors” kifejezést, és vegye figyelembe a játékos válaszát. Új játék beállításához először hozzon létre egy új Python-fájlt .py kiterjesztéssel.
Az oktatóanyag teljes kódja itt érhető el egy GitHub adattár.
- Hozzon létre egy új fájlt RockPaperScissors.py.
- Nyissa meg az új Python-fájlt bármilyen szövegszerkesztővel, például Notepad++ vagy Visual Studio Code használatával.
- A fájl tetején importálja a véletlenszerű modult. Ezt később a játék során fogod használni, hogy véletlenszerűen válassz egy lépést a számítógép köréhez.
import véletlen
- Mutass be egy üzenetet a játékosnak, és kérd meg, hogy kővel, papírral vagy ollóval adjon be.
userChoice = input("Kő, papír vagy olló? ").Alsó()
- Inicializáljon egy "moveOptions" nevű tömböt, amely tárolja az elérhető mozgások listáját, amelyeket Ön vagy a számítógép lejátszhat.
moveOptions = ['szikla', 'papír', 'olló']
- Amikor a játékos beír egy bevitelt, érvényesítse azt, hogy megbizonyosodjon arról, hogy az egyik elérhető lépés. Miután a játékos érvényes lépést tett, nyomtasson egy megerősítő üzenetet.
míg (A userChoice nem ban ben MoveOptions):
userChoice = input("Érvénytelen választás. Kőnek, papírnak vagy ollónak kell lennie: ").Alsó()
nyomtatás("")
nyomtatás(f "Te választottad {userChoice}.")
Hogyan cserélje fel a számítógépet és hasonlítsa össze a mozdulatokat
Miután megadta a lépését, a számítógép sorra kerül úgy, hogy véletlenszerűen kiválasztja a „sziklát”, a „papírt” vagy az „ollót”. A játéknak ezután össze kell hasonlítania az Ön lépését a számítógép lépésével, hogy megállapítsa, ki nyert.
- Használja a véletlenszerű modult, hogy a számítógép véletlenszerűen válasszon a rendelkezésre álló lépések listájából.
computerChoice = random.choice (moveOptions)
nyomtatás(f" A számítógép választott {computerChoice}.") - Össze kell hasonlítania lépését a számítógép lépésével, hogy megállapítsa, ki nyert. Ezt egy új szótár létrehozásával teheti meg. Ez a szótár minden lépést (például "szikla") tartalmaz, és azt, hogy melyik lépést nyer vagy veszít (például a "kő" veri az "ollót" és veszít a "papírral").
mozog = {
'szikla': { 'üt': 'olló', 'losesTo': 'papír' },
'olló': { 'üt': 'papír', 'losesTo': 'szikla' },
'papír': { 'üt': 'szikla', 'losesTo': 'olló' },
} -
Használja a Python if utasítást ellenőrizni, hogy az Ön lépése és a számítógép lépése döntetlent eredményez-e. Ellenkező esetben használja a lépések szótárát a játékos lépésének összehasonlításához a számítógép lépéseivel.
Például, ha a "rock" lehetőséget választja, akkor a moves[userChoice]['beats'] értéke "olló". Ha a számítógép az „ollót” választotta, az azt jelenti, hogy az Ön lépése felülmúlja az övéket.if userChoice == computerChoice:
nyomtatás(f „Te és a számítógép is választott {userChoice}. Ez egy nyakkendő!")
más:
ha (moves[userChoice]['üt'] == computerChoice):
nyomtatás(f"{userChoice} veri {computerChoice}. Te nyertél!")
ha (moves[userChoice]['losesTo'] == computerChoice):
nyomtatás(f"{userChoice} elveszíti {computerChoice}. A számítógép nyer!")
Hogyan tartsunk pontszámot a játékos és a számítógép között több forduló között
További köröket is hozzáadhat, ahol Ön és a számítógép három-három kört tesz meg.
Miután Ön és a számítógép kiválasztotta a sziklát, a papírt vagy az ollót, a játék újra megkérdezi Önt, és nyomon követi a pontszámait. A játékos pontszáma attól függően növekszik, hogy ki nyerte meg az adott kört.
- Az aktuális kód a játékos és a számítógép egyetlen fordulóját jelenti. Adja hozzá az összes aktuális kódot, kivéve az import utasítást egy new turn() függvényben. A kimeneti üzeneteket is ennek megfelelően módosíthatja, hogy „Ön nyeri ezt a kört” helyett „Ön nyer”:
deffordulat():
userChoice = input("Kő, papír vagy olló? ").Alsó()moveOptions = ['szikla', 'papír', 'olló']
míg (A userChoice nem ban ben MoveOptions):
userChoice = input("Érvénytelen választás. Kőnek, papírnak vagy ollónak kell lennie: ").Alsó()nyomtatás("")
nyomtatás(f "Te választottad {userChoice}.")computerChoice = random.choice (moveOptions)
nyomtatás(f" A számítógép választott {computerChoice}.")mozog = {
'szikla': { 'üt': 'olló', 'losesTo': 'papír' },
'olló': { 'üt': 'papír', 'losesTo': 'szikla' },
'papír': { 'üt': 'szikla', 'losesTo': 'olló' },
}if userChoice == computerChoice:
nyomtatás(f „Te és a számítógép is választott {userChoice}. Ez egy nyakkendő!")
más:
ha (moves[userChoice]['üt'] == computerChoice):
nyomtatás(f"{userChoice} veri {computerChoice}. Megnyerted ezt a kört!")ha (moves[userChoice]['losesTo'] == computerChoice):
nyomtatás(f"{userChoice} elveszíti {computerChoice}. A számítógép nyer!") - A lejátszó és a számítógép három-három kört tehet fel. Adjon hozzá egy "turns" nevű globális változót a fájl tetejéhez.
fordulat = 3
- A turn() függvény után használjon Python for ciklust hogy háromszor ismételje meg a kört. Minden kör elején nyomtassa ki a kör számát. Hívja a turn() függvényt, hogy megkérje a játékost és a számítógépet, hogy hajtsák végre a lépéseiket az adott körben.
i tartományban (fordul):
nyomtatás("")
nyomtatás(f" Kerek {i+1}: ")
fordulat() - Az egyes fordulók nyertesének nyomon követéséhez adjon hozzá egy pontszám változót minden játékoshoz a fájl tetején. Ezekhez a változókhoz a turn() függvényen belül kell értékeket rendelni, ezért győződjön meg róla, hogy globális változóként használja őket.
computerScore = 0
player Score = 0deffordulat():
globális computerScore, playerScore - A turn() függvényen belül, ha a játékos és a számítógép is megtette a lépését, adjon hozzá egy pontot a győztes pontszámához. Módosítsa az if utasítást a "playerScore" vagy a "computerScore" változó értékének növeléséhez.
ha (moves[userChoice]['üt'] == computerChoice):
nyomtatás(f"{userChoice} veri {computerChoice}. Megnyerted ezt a kört!")
player Score += 1ha (moves[userChoice]['losesTo'] == computerChoice):
nyomtatás(f"{userChoice} elveszíti {computerChoice}. A számítógép nyer!")
computerScore += 1 - A turn() függvény végén nyomtasson frissítést minden játékos összpontszámáról.
# Nyomtasson ki frissítést az összpontszámról a forduló után
nyomtatás("")
nyomtatás(f"SCOREBOARD | Játékos pontszáma: {playerScore} | Számítógép pontszáma: {computerScore}") - A játék legvégén és a játékos és a számítógép köreit megismétlő for ciklus után nyomtasd ki a végső győztest.
nyomtatás("")
if (computerScore > playerScore):
nyomtatás(f"A számítógép nyer {computerScore} pont!")
elif (playerScore > computerScore):
nyomtatás(f" Nyersz vele {playerScore} pont!")
más:
nyomtatás(f "Ez döntetlen! Mindketten nyertek vele {playerScore} pont!")
A játék futtatása
A játékhoz futtassa a Python szkriptet terminál vagy parancssor használatával. Adja meg a lépést, és várja meg, amíg a számítógép az övék lesz. A három forduló teljesítése után a program megjeleníti a nyertest.
- Nyisson meg egy parancssort vagy terminált, és keresse meg azt a mappát, amelyben a Python-fájlt tárolja.
- Használja a python parancsot a szkript futtatásához:
pitonKő papír olló.py
- Játssz a játékkal a „kő”, „papír” vagy „olló” szó beírásával.
Tanuljon Python játékok létrehozásával
Az egyszerű játékok, például a "Kő, papír, olló" játék létrehozása nagyszerű módja annak, hogy jobban megismerje a programozási koncepciókat. Nagyon sok más szórakoztató játék is elkészíthető Python használatával, például egy szöveges kalandjáték.