Jednoduché textové hry, ktoré môžete hrať na príkazovom riadku, sú skvelé projekty pre začiatočníkov.

Máte náladu hrať hru, ktorú ste sami napísali? Tak to ste na správnom mieste. Hangman je populárna hra na hádanie slov a môžete si vytvoriť svoju vlastnú verziu s minimálnym úsilím.

Táto hra je dokonalým zabávačom, ktorý je známy z populárnych televíznych herných relácií a seriálov ako Wheel of Fortune, Letterbox a Party Time. A Python je vhodný jazyk na vytvorenie klonu Hangman.

Ako hrať hru Hangman

Hangman je známa hra, kde jeden hráč myslí na slovo a druhý sa ho snaží uhádnuť tak, že navrhuje písmená s pevným počtom tipov. Jeden hráč (v tomto prípade program) predstavuje postupnosť pomlčiek, ktoré predstavujú každé písmeno slova, spolu so znakom ako východiskovým bodom. Druhý hráč (alebo používateľ) uhádne znaky prítomné v slove, jeden po druhom.

Ak je písmeno, ktoré uhádnu, v cieľovom slove, program doplní pomlčku znakom. V opačnom prípade hráč stratí jednu šancu a program vyžrebuje prvok panáčika ako výsledok. V celkovo siedmich šanciach, ak používateľ správne uhádne slovo, vyhráva hru. Ak nie, program dokončí kresbu palica.

instagram viewer

Môžete si vytvoriť zoznam svojich obľúbených slov alebo si stiahnuť jeden like Mieliestronkov zoznam viac ako 58 000 anglických slov. Môžete tiež skúmať a vytvárať ďalšie zábavné textové hry, ako napr interaktívna kvízová hra alebo a textová adventúra v Pythone.

Ako zostaviť hru Hangman

Obsahuje zdrojový kód tejto hry Hangman spolu so súborom so zoznamom slov úložisko GitHub a je zadarmo na použitie.

Importovať náhodný modul a definujte funkciu, get_random_word_from_wordlist(), na výber náhodného slova zo súboru. Textový súbor môže obsahovať bežné podstatné mená alebo názvy miest, zvierat, filmov a pod. podľa vašich predstáv. Definujte zoznam pomocou pravouhlých zátvoriek ([]).

Použi s príkaz na otvorenie súboru a odovzdanie režimu ako 'r' označujúci režim len na čítanie. Ten sa automaticky postará o zatvorenie súboru na konci bloku aj v prípade chýb. Ak si pozriete hangman_wordlist.txt súbor, všimnete si, že na každom riadku je jedno slovo, takže súbor oddeľuje každé slovo znakom nového riadku.

Zadajte únikový znak pre nový riadok (\n) na rozdeliť () uložte každé slovo do zoznamu, ktorý ste predtým definovali. Použite random.choice() ak chcete vrátiť náhodné slovo zo zoznamu.

import random
 
defget_random_word_from_wordlist():
wordlist = []
 
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
 
word = random.choice(wordlist)
return word

Ďalej definujte funkciu, get_some_letters(), ktorý berie ako parameter náhodne vybrané slovo. Táto funkcia zobrazí postupnosť prázdnych pomlčiek (_) a niekoľko listov používateľovi.

Definujte prázdny zoznam písmená uložiť všetky znaky prítomné v slove. Použi tepl premenná na uloženie reťazca, ktorý obsahuje počet prázdnych pomlčiek rovný dĺžke slova. Použite zoznam() previesť reťazec na zoznam znakov a opakovať ho. Použite pripojiť () pridajte znak do zoznamu, ak ešte nie je prítomný.

Použite random.choice() vyberte náhodný znak, ktorý sa chystáte prezentovať používateľovi spolu s prázdnymi pomlčkami. Iterujte cez znaky slova pomocou vyčísliť aby ste mali prehľad o indexe každého znaku.

Keď nájdete náhodne vybraný znak, nahraďte ním prázdnu pomlčku. Použite pripojiť sa () zjednotiť zoznam znakov do úplného reťazca a vrátiť ho.

defget_some_letters(word):
letters = []
temp = '_' * len(word)
 
for char in list(word):
ifchar not in letters:
letters.append(char)
 
character = random.choice(letters)
 
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
 
return temp

Definujte funkciu draw_hangman() ktorá berie ako parameter počet šancí. Táto funkcia poskytuje postavu visiaceho muža. Ako počet šancí neustále klesá, tak aj šance na prežitie. Po vyčerpaní je figúrka kompletná a hra končí.

defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")

Vyhlásiť funkciu, start_hangman_game(), ktorý definuje hlavnú logiku programu. Získajte náhodné slovo zavolaním na get_random_word_from_wordlist() a získajte sekvenciu, ktorá sa zobrazí používateľovi pomocou funkcie get_some_letters() funkciu.

Nastavte počet šancí na sedem a inicializujte premennú, nájdené, ako falošné. Toto nastavíte na pravda ak sa v slove nachádza uhádnuté písmeno.

defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False

Vyhláste slučku, ktorá sa ukončí, keď používateľ správne uhádne slovo alebo sa minie šanca. Začnite hru zobrazením poradia, počtu písmen v slove a zostávajúcich šancí. Požiadajte používateľa, aby uhádol písmeno a prijal ho pomocou vstup() funkciu. Overte používateľský vstup kontrolou dĺžky znaku a toho, či ide o abecedu.

whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
 
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
 
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue

Ak je vstup platný, skontrolujte, či je daný znak v slove prítomný, nahraďte ho postupom uvedeným vyššie a aktualizujte nájdenú hodnotu. Ak postava nie je prítomná, znížte počet šancí. Ak existuje, otočte nájdenú hodnotu späť na počiatočnú hodnotu false.

Ak nezostali žiadne prázdne pomlčky, zobrazí sa, že používateľ vyhral spolu s počtom tipov, inak sa zobrazí grafika kata podľa počtu zostávajúcich šancí.

else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
 
if found:
found = False
else:
chances -= 1
 
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
 
print()

Definujte funkciu na hranie hry Hangman. Ak používateľ zadá áno, zavolajte na start_hangman_game() inak ukončite hru s príslušnou správou. V prípade nesprávneho zadania požiadajte používateľa o opätovné zadanie.

print(" Welcome to the Hangman Game ")
 
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
 
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
 
print("\n")

Výstup hry Hangman

Ak hru vyhráte, uvidíte nasledujúci výstup:

Ak hru prehráte, uvidíte nasledujúci výstup:

Použite Python na vytváranie hier

Python môžete použiť na vytváranie hier s príkazovým riadkom, ako aj grafických hier. Niektoré zaujímavé hry s príkazovým riadkom, ktoré môžete vytvoriť pomocou Pythonu, zahŕňajú hru na hádanie čísel, hru Magic 8 Ball, Mad Libs, Rock/Paper/Nožnice a textovú dobrodružnú hru.

Niektoré zábavné grafické hry, ktoré môžete vytvoriť pomocou pythonu, zahŕňajú Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Najlepšie na týchto hrách je, že ich môžete zostaviť iba pomocou štandardnej knižnice Python.