Tento jednoduchý herní tutoriál vám pomůže procvičit si základy programování v Pythonu.
Vytvoření hry „Kámen, papír, nůžky“ v Pythonu je skvělý způsob, jak zlepšit své programovací dovednosti. Hru můžete vytvořit pomocí jediného skriptu Python a hrát ji na příkazovém řádku.
Hra začíná tím, že požádáte hráče, aby si vybral: „kámen“, „papír“ nebo „nůžky“. Poté čeká, až zadají svou odpověď. Hru můžete hrát proti „počítačovému“ hráči, který si automaticky vybere svůj tah.
Hra může také obsahovat mnoho kol. Takže i když prohrajete první kolo, stále se můžete pokusit vyhrát dvě ze tří!
Jak nastavit hru a požádat hráče o jejich pohyb
Když hra začne, program Python by měl hráče požádat, aby zadal buď „kámen“, „papír“ nebo „nůžky“, a převzít hráčovu odpověď. Chcete-li nastavit novou hru, začněte vytvořením nového souboru Python s příponou .py.
Úplný kód pro tento tutoriál je k dispozici v úložiště GitHub.
- Vytvořte nový soubor s názvem RockPaperScissors.py.
- Otevřete nový soubor Python pomocí libovolného textového editoru, jako je Notepad++ nebo Visual Studio Code.
- V horní části souboru importujte náhodný modul. To využijete později ve hře k náhodnému výběru tahu pro tah počítače.
import náhodný
- Předložte hráči zprávu a požádejte je, aby zadali kámen, papír nebo nůžky.
userChoice = vstup(„Kámen, papír nebo nůžky? ").dolní()
- Inicializujte pole nazvané „moveOptions“, které ukládá seznam dostupných tahů, které můžete hrát vy nebo počítač.
moveOptions = ['Skála', 'papír', 'nůžky']
- Když hráč zadá vstup, ověřte jej, abyste se ujistili, že jde o jeden z dostupných tahů. Jakmile hráč zadá platný tah, vytiskněte potvrzovací zprávu.
zatímco (uživatelská volba ne v moveOptions):
userChoice = vstup(„Neplatná volba. Musí to být kámen, papír nebo nůžky: ").dolní()
tisk("")
tisk(f"Vybral sis {userChoice}.")
Jak se střídat u počítače a porovnávat pohyby
Jakmile zadáte svůj tah, počítač přejde na řadu náhodným výběrem buď "kámen", "papír" nebo "nůžky". Hra pak bude muset porovnat váš tah s tahem počítače, aby určila, kdo vyhrál.
- Použijte náhodný modul k tomu, aby počítač náhodně vybral ze seznamu dostupných tahů.
computerChoice = random.choice (moveOptions)
tisk(f" Vybral počítač {computerChoice}.") - Budete muset porovnat svůj tah s tahem počítače, abyste zjistili, kdo vyhrál. Můžete to udělat vytvořením nového slovníku. Tento slovník obsahuje každý tah (například "kámen") a to, s jakým tahem vyhrává nebo prohrává (například "kámen" poráží "nůžky" a prohrává s "papírem").
pohyby = {
'Skála': { 'beaty': 'nůžky', 'ztrácíTo': 'papír' },
'nůžky': { 'beaty': 'papír', 'ztrácíTo': 'Skála' },
'papír': { 'beaty': 'Skála', 'ztrácíTo': 'nůžky' },
} -
Použijte příkaz if v Pythonu zkontrolovat, zda váš tah a tah počítače vyústí v nerozhodný výsledek. Jinak použijte slovník tahů k porovnání tahu hráče s tahem počítače.
Pokud jako příklad zvolíte „kámen“, pak hodnota moves[userChoice]['beats'] bude „nůžky“. Pokud byla volba počítače "nůžky", znamená to, že váš tah překonal jejich.if userChoice == computerChoice:
tisk(f"Vy i počítač jste si vybrali {userChoice}. To je kravata!")
jiný:
-li (pohybuje se[uživatelská volba]['beaty'] == volba počítače):
tisk(F"{userChoice} bije {computerChoice}. Vyhráváte!")
-li (pohybuje se[uživatelská volba]['ztrácíTo'] == volba počítače):
tisk(F"{userChoice} prohrává s {computerChoice}. Počítač vítězí!")
Jak udržet skóre mezi hráčem a počítačem mezi více koly
Můžete také přidat další kola, kde se vy a počítač vystřídáte každý po třech.
Jakmile si vy a počítač vyberete kámen, papír nebo nůžky, hra se vás znovu zeptá a bude sledovat vaše skóre. Skóre pro hráče se zvyšuje podle toho, kdo vyhrál dané kolo.
- Aktuální kód představuje jedno kolo tahů provedené hráčem i počítačem. Přidejte veškerý aktuální kód kromě příkazu import do nové funkce turn(). Můžete také odpovídajícím způsobem změnit výstupní zprávy, abyste řekli „Vyhrajete toto kolo“ místo „Vyhrajete“:
defotočit se():
userChoice = vstup(„Kámen, papír nebo nůžky? ").dolní()moveOptions = ['Skála', 'papír', 'nůžky']
zatímco (uživatelská volba ne v moveOptions):
userChoice = vstup(„Neplatná volba. Musí to být kámen, papír nebo nůžky: ").dolní()tisk("")
tisk(f"Vybral sis {userChoice}.")computerChoice = random.choice (moveOptions)
tisk(f" Vybral počítač {computerChoice}.")pohyby = {
'Skála': { 'beaty': 'nůžky', 'ztrácíTo': 'papír' },
'nůžky': { 'beaty': 'papír', 'ztrácíTo': 'Skála' },
'papír': { 'beaty': 'Skála', 'ztrácíTo': 'nůžky' },
}if userChoice == computerChoice:
tisk(f"Vy i počítač jste si vybrali {userChoice}. To je kravata!")
jiný:
-li (pohybuje se[uživatelská volba]['beaty'] == volba počítače):
tisk(F"{userChoice} bije {computerChoice}. Vyhraješ tohle kolo!")-li (pohybuje se[uživatelská volba]['ztrácíTo'] == volba počítače):
tisk(F"{userChoice} prohrává s {computerChoice}. Počítač vítězí!") - Hráč a počítač se vystřídají každý ve třech tahech. Přidejte globální proměnnou nazvanou "otočky" v horní části souboru.
otáčky = 3
- Po funkci turn() použijte smyčku Python for opakovat kolo třikrát. Na začátku každého kola vytiskněte číslo kola. Zavolejte funkci turn() a požádejte hráče a počítač o provedení tahů pro dané kolo.
pro i v dosahu (otočky):
tisk("")
tisk(f" Kulaté {i+1}: ")
otočit se() - Chcete-li mít přehled o tom, kdo vyhrál každé kolo, přidejte proměnnou skóre pro každého hráče v horní části souboru. Hodnoty těmto proměnným přiřadíte ve funkci turn(), takže se ujistěte, že je používáte jako globální proměnné.
počítačové skóre = 0
skóre hráče = 0defotočit se():
globální computerScore, playerScore - Uvnitř funkce turn(), jakmile hráč i počítač provedli svůj tah, přidejte bod ke skóre vítěze. Upravte příkaz if tak, aby zvýšil hodnotu proměnné „playerScore“ nebo „computerScore“.
-li (pohybuje se[uživatelská volba]['beaty'] == volba počítače):
tisk(F"{userChoice} bije {computerChoice}. Vyhraješ tohle kolo!")
hráčské skóre += 1-li (pohybuje se[uživatelská volba]['ztrácíTo'] == volba počítače):
tisk(F"{userChoice} prohrává s {computerChoice}. Počítač vítězí!")
počítačové skóre += 1 - Na konci funkce turn() vytiskněte aktualizaci celkového skóre pro každého hráče.
# Vytiskněte aktualizaci o celkovém skóre po kole
tisk("")
tisk(f" Scoreboard | Skóre hráče: {playerScore} | Skóre počítače: {computerScore}") - Na samém konci hry a po smyčce for, která opakuje tahy hráče a počítače, vytiskněte konečného vítěze.
tisk("")
if (počítačové skóre > hráčské skóre):
tisk(f" Počítač vítězí s {computerScore} body!")
elif (playerScore > computerScore):
tisk(f"Vyhraješ s {playerScore} body!")
jiný:
tisk(f"To je kravata! Oba vyhrajete s {playerScore} body!")
Jak spustit hru
Chcete-li hrát hru, spusťte skript Python pomocí terminálu nebo příkazového řádku. Zadejte svůj tah a počkejte, až počítač provede svůj tah. Jakmile dokončíte tři kola, program zobrazí vítěze.
- Otevřete příkazový řádek nebo terminál a přejděte do složky, do které ukládáte svůj soubor Python.
- Ke spuštění skriptu použijte příkaz python:
krajtaKámen, nůžky, papír.py
- Zahrajte si hru zadáním „kámen“, „papír“ nebo „nůžky“.
Naučte se Python vytvářením her
Vytváření jednoduchých her, jako je hra „Kámen, papír, nůžky“, je skvělý způsob, jak se lépe seznámit s koncepty programování. Existuje tolik dalších zábavných her, které můžete vytvořit pomocí Pythonu, jako je například textová adventura.