Jednoduché textové hry, které můžete hrát na příkazovém řádku, jsou skvělé projekty pro začátečníky.

Máte náladu hrát hru, kterou jste sami napsali? Tak to jste na správném místě. Hangman je oblíbená hra na hádání slov a můžete si vytvořit svou vlastní verzi s minimálním úsilím.

Tato hra je dokonalým bavičem, známým z populárních televizních herních pořadů a seriálů, jako je Wheel of Fortune, Letterbox a Party Time. A Python je vhodný jazyk pro vytvoření klonu Hangman.

Jak hrát hru Hangman

Hangman je známá hra, kde jeden hráč myslí na slovo a druhý hráč se ho snaží uhodnout tím, že navrhuje písmena s pevným počtem tipů. Jeden hráč (v tomto případě program) představuje sekvenci pomlček představujících každé písmeno slova spolu se znakem jako výchozím bodem. Druhý hráč (nebo uživatel) hádá znaky přítomné ve slově, jeden po druhém.

Pokud je písmeno, které uhádnou, v cílovém slově, program doplní pomlčku znakem. V opačném případě hráč ztratí jednu šanci a program vylosuje prvek panáčka jako součet. V celkem sedmi šancích, pokud uživatel správně uhodne slovo, vyhrává hru. Pokud ne, program dokončí kresbu paličáka.

instagram viewer

Můžete si vytvořit seznam svých oblíbených slov nebo si jedno lajkovat Mieliestronkův seznam více než 58 000 anglických slov. Můžete také prozkoumat a vytvořit další zábavné textové hry, jako je např interaktivní kvízová hra nebo a textová adventura v Pythonu.

Jak postavit hru Hangman

Zdrojový kód této hry Hangman spolu se souborem seznamu slov je v tomto přítomen úložiště GitHub a je zdarma k použití.

Importujte náhodný modul a definovat funkci, get_random_word_from_wordlist(), abyste vybrali náhodné slovo ze souboru. Textový soubor může obsahovat běžná podstatná jména nebo názvy míst, zvířat, filmů a další podle vašeho vkusu. Definujte seznam pomocí obdélníkových závorek ([]).

Použijte s příkaz k otevření souboru a předání režimu jako 'r' indikující režim pouze pro čtení. To se automaticky postará o uzavření souboru na konci bloku i v případě chyb. Pokud si prohlédnete hangman_wordlist.txt soubor, všimnete si, že na každém řádku je jedno slovo, takže soubor odděluje každé slovo znakem nového řádku.

Předejte znak escape pro nový řádek (\n) k rozdělit() funkce pro uložení každého slova do seznamu, který jste definovali dříve. Použití random.choice() pro vrácení náhodného slova ze seznamu.

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

Dále definujte funkci, get_some_letters(), který bere náhodně vybrané slovo jako parametr. Tato funkce zobrazí sekvenci prázdných pomlček (_) a několik dopisů uživateli.

Definujte prázdný seznam písmena pro uložení všech znaků přítomných ve slově. Použijte tepl proměnná pro uložení řetězce, který obsahuje počet prázdných pomlček rovnající se délce slova. Použití seznam() převést řetězec na seznam znaků a iterovat jej. Použití připojit() pro přidání znaku do seznamu, pokud ještě není přítomen.

Použití random.choice() k výběru náhodného znaku, který se chystáte prezentovat uživateli spolu s prázdnými pomlčkami. Iterujte přes znaky slova pomocí vyjmenovat abyste měli přehled o indexu každého znaku.

Když najdete náhodně vybraný znak, nahraďte jím prázdnou pomlčku. Použití připojit se() sjednotit seznam znaků do úplného řetězce a vrátit jej.

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 funkci draw_hangman() to bere počet šancí jako parametr. Tato funkce poskytuje postavu visícího muže. S tím, jak se počet šancí neustále snižuje, klesají i šance na přežití. Po vyčerpání je figurka 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("| ")

deklarovat funkci, start_hangman_game(), který definuje hlavní logiku programu. Získejte náhodné slovo zavoláním get_random_word_from_wordlist() a pomocí funkce získejte sekvenci, která se zobrazí uživateli get_some_letters() funkce.

Nastavte počet šancí na sedm a inicializujte proměnnou, nalezeno, jako nepravdivý. Toto nastavíte na skutečný pokud je ve slově přítomno uhádnuté písmeno.

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

Deklarujte smyčku, která se ukončí, když uživatel správně uhodne slovo nebo mu dojde šance. Začněte hru zobrazením pořadí, počtu písmen ve slově a zbývajících šancí. Požádejte uživatele, aby uhodl písmeno a přijal jej pomocí vstup() funkce. Ověřte zadání uživatele kontrolou délky znaku a toho, zda se jedná 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

Pokud je vstup platný, zkontrolujte, zda je ve slově přítomen znak, a nahraďte jej postupem uvedeným výše a aktualizujte hodnotu nalezené. Pokud postava není přítomna, snižte počet šancí. Pokud existuje, otočte hodnotu found zpět na počáteční hodnotu false.

Pokud nezůstanou žádné prázdné pomlčky, zobrazí se, že uživatel vyhrál, spolu s počtem provedených tipů, jinak se zobrazí grafika kata podle počtu zbývajících š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 funkci pro hraní hry Hangman. Pokud uživatel zadá ano, zavolejte start_hangman_game() jinak ukončete hru s příslušnou zprávou. V případě neplatného zadání požádejte uživatele o opětovné zadání.

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

Pokud hru vyhrajete, uvidíte následující výstup:

Pokud hru prohrajete, uvidíte následující výstup:

Používejte Python k vytváření her

Python můžete použít k vytváření her s příkazovým řádkem i grafických her. Některé zajímavé hry s příkazovým řádkem, které můžete vytvořit pomocí Pythonu, zahrnují hru na hádání čísel, hru Magic 8 Ball, Mad Libs, Rock/Paper/Scissors a textovou dobrodružnou hru.

Některé zábavné grafické hry, které můžete vytvořit pomocí pythonu, zahrnují Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Nejlepší na těchto hrách je, že je můžete postavit pouze pomocí standardní knihovny Python.