Jednostavne tekstualne igre koje možete igrati u naredbenom retku izvrsni su projekti za početnike.

Jeste li raspoloženi igrati igru ​​koju ste sami napisali? Pa, na pravom ste mjestu. Vješala je popularna igra pogađanja riječi i možete izraditi vlastitu verziju uz minimalan napor.

Ova igra je savršeni zabavljač, poznat iz popularnih TV emisija i serija kao što su Wheel of Fortune, Letterbox i Party Time. A Python je zgodan jezik za korištenje za izradu Hangman klona.

Kako igrati igru ​​Vješala

Vješala je dobro poznata igra u kojoj jedan igrač smišlja riječ, a drugi je pokušava pogoditi predlažući slova s ​​fiksnim brojem pogađanja. Jedan igrač (u ovom slučaju program) predstavlja niz crtica koje predstavljaju svako slovo riječi, zajedno sa znakom kao početnom točkom. Drugi igrač (ili korisnik) pogađa znakove prisutne u riječi, jednog po jednog.

Ako je slovo koje pogode u ciljnoj riječi, program ispunjava crticu znakom. U suprotnom, igrač gubi jednu priliku, a program izvlači element štapića kao zbroj. U ukupno sedam prilika, ako korisnik točno pogodi riječ, pobjeđuje u igri. Ako nije, program dovršava crtanje čovjeka sa štapom.

instagram viewer

Možete napraviti popis svojih omiljenih riječi ili preuzeti jedan like Mieliestronkov popis s više od 58 000 engleskih riječi. Također možete istraživati ​​i graditi druge zabavne tekstualne igre kao što je interaktivna igra kviza ili a tekstualna avanturistička igra u Pythonu.

Kako izgraditi igru ​​Vješala

Izvorni kod ove igrice Hangman, zajedno s datotekom s popisom riječi, nalazi se ovdje GitHub spremište i besplatan je za korištenje.

Uvezi slučajan modul i definirati funkciju, get_random_word_from_wordlist(), za odabir slučajne riječi iz datoteke. Tekstualna datoteka može sadržavati zajedničke imenice ili nazive mjesta, životinja, filmova i više, ovisno o vašim željama. Definirajte popis pomoću pravokutnih zagrada ([]).

Koristiti s naredba za otvaranje datoteke i prosljeđivanje načina rada as 'r' označava način rada samo za čitanje. Ovo automatski brine o zatvaranju datoteke na kraju bloka čak iu slučajevima pogrešaka. Ako pogledate vješala_popis riječi.txt datoteci, primijetit ćete da postoji jedna riječ u svakom retku, tako da datoteka odvaja svaku riječ znakom novog retka.

Proslijedite znak izlaza za novi red (\n) prema podjela() funkcija za pohranjivanje svake riječi na popisu koji ste definirali ranije. Koristiti random.choice() za vraćanje slučajne riječi s popisa.

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

Zatim definirajte funkciju, get_some_letters(), koja uzima nasumično odabranu riječ kao parametar. Ova funkcija će prikazati niz praznih crtica (_) i neka pisma korisniku.

Definirajte prazan popis slova za pohranjivanje svih znakova prisutnih u riječi. Koristiti temp varijabla za pohranjivanje niza koji sadrži broj praznih crtica jednak duljini riječi. Koristiti popis() pretvoriti niz u popis znakova i iterirati preko njega. Koristiti dodati() za dodavanje znaka na popis ako već nije prisutan.

Koristiti random.choice() za odabir slučajnog znaka koji ćete predstaviti korisniku zajedno s praznim crticama. Iterirajte preko znakova riječi koristeći nabrojati za praćenje indeksa svakog znaka.

Kada pronađete nasumično odabran znak, zamijenite njime praznu crticu. Koristiti pridružiti() za objedinjavanje popisa znakova u potpuni niz i vraćanje istog.

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 funkciju nacrtaj_vješala() koji uzima broj prilika kao parametar. Ova funkcija daje figuru čovjeka koji visi. Kako se broj šansi smanjuje, tako se smanjuju i šanse za preživljavanje. Kada se iscrpi, figura je gotova i igra završava.

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 funkciju, pokreni_igra_vješala(), koji definira glavnu logiku programa. Dobijte slučajnu riječ pozivom na get_random_word_from_wordlist() funkciju i dobiti slijed za prikaz korisniku pomoću get_some_letters() funkcija.

Postavite broj prilika na sedam i inicijalizirajte varijablu, pronađeno, kao lažno. Ovo ćete postaviti na pravi ako je pogodeno slovo prisutno u riječi.

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

Deklarirajte petlju koja se prekida kada korisnik točno pogodi riječ ili ostane bez šanse. Započnite igru ​​prikazivanjem niza, broja slova u riječi i preostalih šansi. Zamolite korisnika da pogodi slovo i primi ga pomoću ulazni() funkcija. Potvrdite korisnički unos provjerom duljine znaka i je li riječ o abecedi.

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

Ako je unos ispravan, provjerite postoji li znak u riječi i zamijenite ga pomoću prethodno viđenog postupka i ažurirajte pronađenu vrijednost. Ako lik nije prisutan, smanjite broj šansi. Ako postoji, vratite vrijednost found natrag na početnu vrijednost false.

Ako nema praznih crtica, prikaži da je korisnik pobijedio zajedno s brojem pogađanja, inače prikaži grafiku vješala prema broju preostalih prilika.

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

Definirajte funkciju za igranje igre Vješala. Ako korisnik unese da, pozovite pokreni_igra_vješala() funkciju inače napustite igru ​​odgovarajućom porukom. U slučaju neispravnog unosa zamolite korisnika da ponovno unese.

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 Vješala

Ako pobijedite u igri, vidjet ćete sljedeće:

Vidjet ćete sljedeći rezultat ako izgubite igru:

Koristite Python za izradu igara

Python možete koristiti za izradu igara s naredbenim retkom, kao i za grafičke igre. Neke zanimljive igre naredbenog retka koje možete izraditi pomoću Pythona uključuju igru ​​pogađanja brojeva, igru ​​Magic 8 Ball, Mad Libs, Rock/Paper/Scissors i tekstualnu avanturističku igru.

Neke zabavne grafičke igre koje možete izraditi pomoću pythona uključuju Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Najbolji dio ovih igara je to što ih možete izgraditi samo s Python standardnom bibliotekom.