Tento jednoduchý návod na hru vám pomôže precvičiť si základy programovania v Pythone.
Vytvorenie hry „Kameň, papier, nožnice“ v Pythone je skvelý spôsob, ako zlepšiť svoje programovacie schopnosti. Hru môžete vytvoriť pomocou jediného skriptu Python a hrať ju na príkazovom riadku.
Hra začína požiadaním hráča, aby si vybral: „kameň“, „papier“ alebo „nožnice“. Potom čaká, kým zadajú svoju odpoveď. Hru môžete hrať proti „počítačovému“ hráčovi, ktorý si automaticky vyberie svoj ťah.
Hra môže obsahovať aj veľa kôl. Takže aj keď prehráte prvé kolo, stále sa môžete pokúsiť vyhrať dve z troch!
Ako nastaviť hru a požiadať hráča o jeho pohyb
Keď sa hra spustí, program Python by mal hráča požiadať, aby zadal „kameň“, „papier“ alebo „nožnice“ a prebral odpoveď hráča. Ak chcete nastaviť novú hru, začnite vytvorením nového súboru Python s príponou .py.
Úplný kód pre tento tutoriál je k dispozícii v úložisko GitHub.
- Vytvorte nový súbor s názvom RockPaperScissors.py.
- Otvorte nový súbor Python pomocou ľubovoľného textového editora, ako je napríklad Notepad++ alebo Visual Studio Code.
- V hornej časti súboru importujte náhodný modul. To neskôr v hre použijete na náhodný výber ťahu pre ťah počítača.
importovať náhodný
- Predložte hráčovi správu a požiadajte ho, aby zadal kameň, papier alebo nožnice.
userChoice = vstup(„Kameň, papier alebo nožnice? ").nižšia()
- Inicializujte pole s názvom „moveOptions“, v ktorom je uložený zoznam dostupných ťahov, ktoré môžete hrať vy alebo počítač.
moveOptions = ['rock', 'papier', 'nožnice']
- Keď hráč zadá vstup, overte ho, aby ste sa uistili, že ide o jeden z dostupných ťahov. Keď hráč zadá platný ťah, vytlačte potvrdzujúcu správu.
zatiaľ čo (používateľská voľba nie v moveOptions):
userChoice = vstup(„Neplatná voľba. Musí to byť kameň, papier alebo nožnice: ").nižšia()
vytlačiť("")
vytlačiť (f"Vybral si si {userChoice}.")
Ako sa striedať s počítačom a porovnávať ťahy
Po zadaní ťahu sa počítač dostane na rad náhodným výberom buď "kameň", "papier" alebo "nožnice". Hra potom bude musieť porovnať váš ťah s ťahom počítača, aby určila, kto vyhral.
- Použite náhodný modul, aby si počítač náhodne vybral zo zoznamu dostupných ťahov.
computerChoice = random.choice (moveOptions)
vytlačiť (f"Vybral počítač {computerChoice}.") - Budete musieť porovnať svoj ťah s ťahom počítača, aby ste určili, kto vyhral. Môžete to urobiť vytvorením nového slovníka. Tento slovník obsahuje každý ťah (napríklad „kameň“) a s ktorým ťahom vyhráva alebo prehráva (napríklad „kameň“ porazí „nožnice“ a prehrá „papier“).
pohyby = {
'rock': { 'beats': 'nožnice', 'losesTo': 'papier' },
'nožnice': { 'beats': 'papier', 'losesTo': 'rock' },
'papier': { 'beats': 'rock', 'losesTo': 'nožnice' },
} -
Použite príkaz if v Pythone aby ste skontrolovali, či váš ťah a ťah počítača vedú k nerozhodnému výsledku. V opačnom prípade použite slovník ťahov na porovnanie ťahu hráča s ťahom počítača.
Ak napríklad vyberiete „rock“, potom hodnota moves[userChoice]['beats'] bude „nožnice“. Ak si počítač vybral „nožnice“, znamená to, že váš ťah prekonal ich.if userChoice == computerChoice:
vytlačiť (f"Vy aj počítač ste si vybrali {userChoice}. Je to kravata!")
inak:
ak (presunie sa[userChoice]['beats'] == voľba počítača):
vytlačiť (f"{userChoice} bije {computerChoice}. Vyhral si!")
ak (presunie sa[userChoice]['losesTo'] == voľba počítača):
vytlačiť (f"{userChoice} stráca na {computerChoice}. Počítač vyhráva!")
Ako udržať skóre medzi hráčom a počítačom medzi viacerými kolami
Môžete tiež pridať ďalšie kolá, kde sa vy a počítač vystriedate po tri.
Keď vy a počítač vyberiete kameň, papier alebo nožnice, hra sa vás opýta znova a bude sledovať vaše skóre. Skóre pre hráča sa zvyšuje podľa toho, kto vyhral dané kolo.
- Aktuálny kód predstavuje jedno kolo ťahov, ktoré vykoná hráč aj počítač. Pridajte celý aktuálny kód okrem príkazu import do novej funkcie turn(). Môžete tiež zodpovedajúcim spôsobom zmeniť výstupné správy, aby ste povedali „Vyhrávate toto kolo“ namiesto „Vyhrávate“:
defotočiť():
userChoice = vstup(„Kameň, papier alebo nožnice? ").nižšia()moveOptions = ['rock', 'papier', 'nožnice']
zatiaľ čo (používateľská voľba nie v moveOptions):
userChoice = vstup(„Neplatná voľba. Musí to byť kameň, papier alebo nožnice: ").nižšia()vytlačiť("")
vytlačiť (f"Vybral si si {userChoice}.")computerChoice = random.choice (moveOptions)
vytlačiť (f"Vybral počítač {computerChoice}.")pohyby = {
'rock': { 'beats': 'nožnice', 'losesTo': 'papier' },
'nožnice': { 'beats': 'papier', 'losesTo': 'rock' },
'papier': { 'beats': 'rock', 'losesTo': 'nožnice' },
}if userChoice == computerChoice:
vytlačiť (f"Vy aj počítač ste si vybrali {userChoice}. Je to kravata!")
inak:
ak (presunie sa[userChoice]['beats'] == voľba počítača):
vytlačiť (f"{userChoice} bije {computerChoice}. Vyhráš toto kolo!")ak (presunie sa[userChoice]['losesTo'] == voľba počítača):
vytlačiť (f"{userChoice} stráca na {computerChoice}. Počítač vyhráva!") - Hráč a počítač sa vystriedajú po troch ťahoch. Do hornej časti súboru pridajte globálnu premennú s názvom „otočky“.
otáčky = 3
- Po funkcii turn() použite cyklus Python for opakovať kolo trikrát. Na začiatku každého kola vytlačte číslo kola. Zavolaním funkcie turn() požiadajte hráča a počítač o vykonanie ťahov pre dané kolo.
pre i v dosahu (otočky):
vytlačiť("")
vytlačiť (f" Okrúhle {i+1}: ")
otočiť () - Ak chcete mať prehľad o tom, kto vyhral každé kolo, pridajte premennú skóre pre každého hráča v hornej časti súboru. Hodnoty týmto premenným priradíte vo funkcii turn(), takže ich používajte ako globálne premenné.
počítačové skóre = 0
skóre hráča = 0defotočiť():
globálne computerScore, hráčScore - Vo funkcii turn() po vykonaní ťahu hráča aj počítača pripočítajte bod k skóre víťaza. Upravte príkaz if, aby ste zvýšili hodnotu premennej „playerScore“ alebo „computerScore“.
ak (presunie sa[userChoice]['beats'] == voľba počítača):
vytlačiť (f"{userChoice} bije {computerChoice}. Vyhráš toto kolo!")
skóre hráča += 1ak (presunie sa[userChoice]['losesTo'] == voľba počítača):
vytlačiť (f"{userChoice} stráca na {computerChoice}. Počítač vyhráva!")
počítačové skóre += 1 - Na konci funkcie turn() vytlačte aktualizáciu celkového skóre pre každého hráča.
# Vytlačte aktualizáciu o celkovom skóre po kole
vytlačiť("")
vytlačiť (f" SÚBOR | Skóre hráča: {playerScore} | Skóre počítača: {computerScore}") - Na samom konci hry a po slučke for, ktorá opakuje ťahy hráča a počítača, vytlačte konečného víťaza.
vytlačiť("")
if (počítačové skóre > hráčske skóre):
vytlačiť (f"Počítač vyhral s {computerScore} body!")
elif (skóre hráča > skóre počítača):
vytlačiť (f"Vyhráš s {playerScore} body!")
inak:
vytlačiť (f"Je to remíza! Vyhráte obaja s {playerScore} body!")
Ako spustiť hru
Ak chcete hrať hru, spustite skript Python pomocou terminálu alebo príkazového riadka. Zadajte svoj ťah a počkajte, kým počítač urobí svoj ťah. Po dokončení troch kôl program zobrazí víťaza.
- Otvorte príkazový riadok alebo terminál a prejdite do priečinka, do ktorého ukladáte svoj súbor Python.
- Na spustenie skriptu použite príkaz python:
pytónKameň Papier Nožnice.py
- Zahrajte si hru zadaním slov „kameň“, „papier“ alebo „nožnice“.
Naučte sa Python vytváraním hier
Vytváranie jednoduchých hier, ako je napríklad hra „Kameň, papier, nožnice“, je skvelý spôsob, ako sa lepšie zoznámiť s konceptmi programovania. Existuje toľko ďalších zábavných hier, ktoré môžete vytvoriť pomocou Pythonu, ako napríklad textová adventúra.