Jocurile de text simple pe care le puteți juca pe linia de comandă sunt proiecte excelente pentru începători.

Ai chef să joci un joc pe care l-ai scris singur? Ei bine, ești în locul potrivit. Hangman este un joc popular de ghicire a cuvintelor și îți poți crea propria versiune cu un efort minim.

Acest joc este un divertisment perfect, familiar din seriale și seriale populare, cum ar fi Wheel of Fortune, Letterbox și Party Time. Și Python este un limbaj convenabil de folosit pentru a construi o clonă Hangman.

Cum să joci jocul spânzuratului

Hangman este un joc binecunoscut în care un jucător se gândește la un cuvânt, iar celălalt încearcă să-l ghicească sugerând litere cu un număr fix de ghiciri. Un jucător (în acest caz programul) prezintă o secvență de liniuțe reprezentând fiecare literă a cuvântului, împreună cu un caracter ca punct de plecare. Celălalt jucător (sau utilizator) ghicește, unul câte unul, personajele prezente în cuvânt.

Dacă litera pe care o ghicesc este în cuvântul țintă, programul umple liniuța cu caracterul. În caz contrar, jucătorul pierde o șansă, iar programul trage un element dintr-o figură ca un număr. Într-un total de șapte șanse, dacă utilizatorul ghicește corect cuvântul, câștigă jocul. Dacă nu, programul își finalizează desenul unui stick man.

Puteți crea o listă cu cuvintele dvs. preferate sau puteți descărca unul ca Lista lui Mieliestronk cu peste 58.000 de cuvinte în limba engleză. De asemenea, puteți explora și crea alte jocuri distractive bazate pe text, cum ar fi un joc interactiv quiz sau a joc de aventură bazat pe text în Python.

Cum să construiești jocul spânzuratului

Codul sursă al acestui joc Hangman, împreună cu fișierul cu lista de cuvinte, este prezent în acesta Depozitul GitHub și este liber de utilizat.

Importă Aleatoriu modul și definiți o funcție, get_random_word_from_wordlist(), pentru a alege un cuvânt aleatoriu din fișier. Fișierul text poate conține substantive comune sau nume de locuri, animale, filme și multe altele, în funcție de preferințele dvs. Definiți o listă folosind parantezele dreptunghiulare([]).

Folosește cu declarație pentru a deschide fișierul și a trece modul ca 'r' indicând modul numai citire. Aceasta se ocupă automat de închiderea fișierului la sfârșitul blocului chiar și în cazurile de erori. Dacă vizualizați hangman_wordlist.txt fișier, veți observa că este prezent un cuvânt pe fiecare linie, astfel încât fișierul separă fiecare cuvânt cu un caracter de linie nouă.

Transmite caracterul de evacuare pentru o linie nouă (\n) la Despică() funcția pentru a stoca fiecare cuvânt din lista pe care ați definit-o mai devreme. Utilizare random.choice() pentru a returna un cuvânt aleatoriu din listă.

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

Apoi, definiți o funcție, obține_câteva_litere(), care ia cuvântul selectat aleatoriu ca parametru. Această funcție va afișa o secvență de liniuțe goale (_) și câteva scrisori către utilizator.

Definiți lista goală scrisori pentru a stoca toate caracterele prezente în cuvânt. Folosește temp variabilă pentru a stoca un șir care conține numărul de liniuțe goale egal cu lungimea cuvântului. Utilizare listă() pentru a converti șirul într-o listă de caractere și a repeta peste el. Utilizare adăuga() pentru a adăuga personajul în listă dacă nu este deja prezent.

Utilizare random.choice() pentru a alege un caracter aleatoriu pe care îl vei prezenta utilizatorului împreună cu liniuțele goale. Iterați peste caracterele cuvântului folosind enumera pentru a ține o evidență a indexului fiecărui personaj.

Când găsiți caracterul selectat aleatoriu, înlocuiți liniuța goală cu acesta. Utilizare a te alatura() pentru a unifica lista de caractere într-un șir complet și a o returna.

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

Definiți o funcție draw_hangman() care ia numărul de șanse ca parametru. Această funcție oferă o figură a spânzuratului. Pe măsură ce numărul de șanse continuă să scadă, la fel și șansele de supraviețuire. Când este epuizat, cifra este completă și jocul se termină.

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

Declarați o funcție, start_hangman_game(), care definește logica principală a programului. Obțineți un cuvânt aleatoriu apelând la get_random_word_from_wordlist() funcția și obțineți secvența de afișat utilizatorului folosind obține_câteva_litere() funcţie.

Setați numărul de șanse la șapte și inițializați o variabilă, găsite, ca fiind fals. Vei seta asta la Adevărat dacă litera ghicită este prezentă în cuvânt.

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

Declarați o buclă care se încheie atunci când utilizatorul ghicește corect cuvântul sau rămâne fără șanse. Începeți jocul afișând secvența, numărul de litere din cuvânt și șansele rămase. Cereți utilizatorului să ghicească o scrisoare și să o primească folosind intrare() funcţie. Validați introducerea utilizatorului verificând lungimea caracterului și dacă este un alfabet.

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

Dacă introducerea este validă, verificați dacă caracterul este prezent în cuvânt și înlocuiți-l utilizând procesul văzut mai devreme și actualizați valoarea găsită. Daca personajul nu este prezent scade numarul de sanse. Dacă este prezent, întoarceți valoarea găsită înapoi la valoarea inițială falsă.

Dacă nu au rămas liniuțe goale, afișați că utilizatorul a câștigat împreună cu numărul de ghiciri efectuate, altfel afișați graficul spânzuratorului în funcție de numărul de șanse rămase.

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

Definiți o funcție pentru a juca jocul Hangman. Dacă utilizatorul introduce da, apelați start_hangman_game() în caz contrar, părăsiți jocul cu mesajul corespunzător. În caz de introducere nevalidă, cereți utilizatorului să intre din nou.

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

Ieșirea jocului spânzuratului

Veți vedea următorul rezultat dacă câștigați jocul:

Veți vedea următoarea ieșire dacă pierdeți jocul:

Utilizați Python pentru a crea jocuri

Puteți folosi Python pentru a crea jocuri de linie de comandă, precum și jocuri grafice. Unele jocuri interesante pe linia de comandă pe care le puteți crea folosind Python includ jocul de ghicire a numărului, jocul Magic 8 Ball, Mad Libs, Rock/Paper/Scissors și un joc de aventură text.

Unele jocuri grafice distractive pe care le puteți construi cu python includ Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Cea mai bună parte a acestor jocuri este că le puteți construi doar cu biblioteca standard Python.