Preproste besedilne igre, ki jih lahko igrate v ukazni vrstici, so odlični projekti za začetnike.

Ali ste razpoloženi za igro, ki ste jo napisali sami? No, na pravem ste mestu. Hangman je priljubljena igra ugibanja besed in svojo različico lahko ustvarite z minimalnim naporom.

Ta igra je popolna zabava, poznana iz priljubljenih televizijskih oddaj in serij, kot so Wheel of Fortune, Letterbox in Party Time. In Python je priročen jezik za izdelavo klona Hangman.

Kako igrati igro Hangman

Hangman je znana igra, pri kateri si en igralec zamisli besedo, drugi pa jo poskuša uganiti tako, da predlaga črke z določenim številom ugibanj. En igralec (v tem primeru program) predstavi zaporedje pomišljajev, ki predstavljajo vsako črko besede, skupaj z znakom kot izhodiščem. Drugi igralec (ali uporabnik) enega za drugim ugiba znake v besedi.

Če je črka, ki jo ugibajo, v ciljni besedi, program zapolni pomišljaj z znakom. V nasprotnem primeru igralec izgubi eno priložnost, program pa izriše element palčke kot rezultat. V skupno sedmih priložnostih, če uporabnik pravilno ugane besedo, zmaga. Če ne, program dokonča risanje moža s palico.

Ustvarite lahko seznam svojih najljubših besed ali prenesete všeček Mieliestronkov seznam z več kot 58.000 angleškimi besedami. Prav tako lahko raziskujete in gradite druge zabavne besedilne igre, kot je interaktivna igra kviza ali a besedilna pustolovska igra v Pythonu.

Kako sestaviti igro Hangman

Izvorna koda te igre Hangman je skupaj z datoteko s seznamom besed prisotna v tem Repozitorij GitHub in je brezplačen za uporabo.

Uvozite naključen modul in definirajte funkcijo, get_random_word_from_wordlist(), da izberete naključno besedo iz datoteke. Besedilna datoteka lahko vsebuje pogoste samostalnike ali imena krajev, živali, filmov in drugega, odvisno od vaših želja. Določite seznam s pravokotnimi oklepaji ([]).

Uporabi z stavek za odpiranje datoteke in posredovanje načina kot 'r' označuje način samo za branje. To samodejno poskrbi za zapiranje datoteke na koncu bloka tudi v primeru napak. Če si ogledate hangman_wordlist.txt datoteko, boste opazili, da je v vsaki vrstici prisotna ena beseda, zato datoteka loči vsako besedo z znakom za novo vrstico.

Prenesite ubežni znak za novo vrstico (\n) do razdeli () funkcijo za shranjevanje vsake besede na seznamu, ki ste ga definirali prej. Uporaba random.choice() da vrnete naključno besedo s seznama.

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

Nato definirajte funkcijo, pridobi_nekaj_črk(), ki vzame naključno izbrano besedo kot parameter. Ta funkcija bo prikazala zaporedje praznih pomišljajev (_) in nekaj pisem uporabniku.

Določite prazen seznam pisma za shranjevanje vseh znakov, ki so prisotni v besedi. Uporabi temp spremenljivka za shranjevanje niza, ki vsebuje število praznih pomišljajev, ki je enako dolžini besede. Uporaba seznam() za pretvorbo niza v seznam znakov in iteracijo po njem. Uporaba pripni() da dodate znak na seznam, če še ni prisoten.

Uporaba random.choice() da izberete naključni znak, ki ga boste predstavili uporabniku skupaj s praznimi pomišljaji. Ponavljajte znake besede using našteti da sledite indeksu vsakega znaka.

Ko najdete naključno izbran znak, zamenjajte prazen pomišljaj z njim. Uporaba pridruži se() da združite seznam znakov v celoten niz in ga vrnete.

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

Definirajte funkcijo draw_hangman() ki kot parameter upošteva število priložnosti. Ta funkcija zagotavlja figuro visečega človeka. Ker se število možnosti vedno manjša, se zmanjšujejo tudi možnosti za preživetje. Ko je izčrpan, je figura dokončana in igra se konča.

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("| ")

Deklarirajte funkcijo, start_hangman_game(), ki definira glavno logiko programa. Pridobite naključno besedo tako, da pokličete get_random_word_from_wordlist() funkcijo in dobite zaporedje, ki bo prikazano uporabniku z uporabo pridobi_nekaj_črk() funkcijo.

Nastavite število priložnosti na sedem in inicializirajte spremenljivko, našel, kot lažno. To boste nastavili na prav če je uganjena črka prisotna v besedi.

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

Označite zanko, ki se konča, ko uporabnik pravilno ugane besedo ali zmanjka možnosti. Začnite igro s prikazom zaporedja, števila črk v besedi in preostalih možnosti. Prosite uporabnika, da ugane črko in jo prejme z uporabo vnos() funkcijo. Potrdite uporabniški vnos tako, da preverite dolžino znaka in ali je abeceda.

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

Če je vnos veljaven, preverite, ali je znak prisoten v besedi, in ga zamenjajte s postopkom, ki ste ga videli prej, ter posodobite najdeno vrednost. Če znak ni prisoten, zmanjšajte število možnosti. Če je prisoten, spremeni vrednost found nazaj na začetno vrednost false.

Če ni praznih pomišljajev, prikažite, da je uporabnik zmagal, skupaj s številom ugibanj, sicer prikažite grafiko obešenjaka glede na število preostalih priložnosti.

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()

Določite funkcijo za igranje igre Hangman. Če uporabnik vnese da, pokličite start_hangman_game() funkcijo sicer zapustite igro z ustreznim sporočilom. V primeru neveljavnega vnosa prosite uporabnika, da znova vnese.

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")

Rezultat igre Hangman

Če zmagate, boste videli naslednje rezultate:

Če izgubite igro, boste videli naslednje:

Uporabite Python za izdelavo iger

Python lahko uporabite za ustvarjanje iger v ukazni vrstici in tudi grafičnih iger. Nekatere zanimive igre z ukazno vrstico, ki jih lahko sestavite s Pythonom, vključujejo igro ugibanja števil, igro Magic 8 Ball, Mad Libs, Rock/Paper/Scissors in besedilno pustolovsko igro.

Nekatere zabavne grafične igre, ki jih lahko ustvarite s pythonom, vključujejo Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Najboljši del teh iger je, da jih lahko sestavite samo s standardno knjižnico Python.