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.

  1. Vytvořte nový soubor s názvem RockPaperScissors.py.
  2. Otevřete nový soubor Python pomocí libovolného textového editoru, jako je Notepad++ nebo Visual Studio Code.
  3. instagram viewer
  4. 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ý
  5. 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í()
  6. 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']
  7. 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.

  1. 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}.")
  2. 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' },
    }
  3. 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.
    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í!")
    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.

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.

  1. 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í!")

  2. 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
  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()
  4. 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 = 0

    defotočit se():
    globální computerScore, playerScore

  5. 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

  6. 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}")
  7. 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.

  1. Otevřete příkazový řádek nebo terminál a přejděte do složky, do které ukládáte svůj soubor Python.
  2. Ke spuštění skriptu použijte příkaz python:
    krajtaKámen, nůžky, papír.py
  3. 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.