Vienkāršas teksta spēles, kuras varat spēlēt komandrindā, ir lieliski iesācēju projekti.

Vai esat noskaņots spēlēt spēli, kuru esat uzrakstījis pats? Nu, jūs esat īstajā vietā. Hangman ir populāra vārdu minēšanas spēle, un jūs varat izveidot savu versiju ar minimālu piepūli.

Šī spēle ir ideāls izklaidētājs, kas pazīstams no populāriem TV spēļu šoviem un seriāliem, piemēram, Wheel of Fortune, Letterbox un Party Time. Un Python ir ērta valoda, ko izmantot, lai izveidotu Hangman klonu.

Kā spēlēt bendes spēli

Hangman ir labi zināma spēle, kurā viens spēlētājs izdomā vārdu, bet otrs mēģina to uzminēt, iesakot burtus ar noteiktu minējumu skaitu. Viens spēlētājs (šajā gadījumā programma) parāda domuzīmju secību, kas apzīmē katru vārda burtu, kā arī rakstzīmi kā sākumpunktu. Otrs spēlētājs (vai lietotājs) pa vienam uzmin vārda rakstzīmes.

Ja viņu uzminētais burts ir mērķa vārdā, programma aizpilda domuzīmi ar rakstzīmi. Pretējā gadījumā spēlētājs zaudē vienu iespēju, un programma izvelk nūjas figūriņas elementu kā rezultātu. Kopumā septiņas iespējas, ja lietotājs pareizi uzmin vārdu, viņš uzvar spēli. Ja nē, programma pabeidz vīrieša nūju zīmējumu.

instagram viewer

Varat izveidot savu iecienītāko vārdu sarakstu vai lejupielādēt vienu, kas patīk Mieliestronka saraksts ar vairāk nekā 58 000 angļu vārdiem. Varat arī izpētīt un izveidot citas jautras teksta spēles, piemēram, interaktīva viktorīnas spēle vai a uz tekstu balstīta piedzīvojumu spēle programmā Python.

Kā izveidot bendes spēli

Šajā Hangman spēles avota kods kopā ar vārdu saraksta failu ir klāt GitHub repozitorijs un to var izmantot bez maksas.

Importēt nejauši moduli un definēt funkciju, get_random_word_from_wordlist(), lai izvēlētos nejauši izvēlētu vārdu no faila. Teksta failā var būt bieži sastopami lietvārdi vai vietu, dzīvnieku, filmu un citu nosaukumu nosaukumi atkarībā no jūsu vēlmēm. Definējiet sarakstu izmantojot taisnstūra iekavas ([]).

Izmantojiet ar paziņojums, lai atvērtu failu un nodotu režīmu kā "r" kas norāda tikai lasīšanas režīmu. Tas automātiski rūpējas par faila aizvēršanu bloka beigās pat kļūdu gadījumos. Ja skatāties hangman_wordlist.txt failā, pamanīsit, ka katrā rindā ir viens vārds, tāpēc fails katru vārdu atdala ar jaunrindas rakstzīmi.

Nododiet atsoļa rakstzīmi jaunai rindiņai (\n) uz sadalīt () funkciju, lai saglabātu katru vārdu iepriekš definētajā sarakstā. Izmantot random.choice() lai atgrieztu izlases vārdu no saraksta.

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

Pēc tam definējiet funkciju, get_some_ letters(), kas izmanto nejauši atlasīto vārdu kā parametru. Šī funkcija parādīs virkni tukšu domuzīmju (_) un dažas vēstules lietotājam.

Definējiet tukšu sarakstu vēstules lai saglabātu visas vārda rakstzīmes. Izmantojiet temp mainīgais, lai saglabātu virkni, kurā ir tukšo domuzīmju skaits, kas vienāds ar vārda garumu. Izmantot saraksts () lai pārvērstu virkni rakstzīmju sarakstā un atkārtotu to. Izmantot pievienot () lai pievienotu rakstzīmi sarakstam, ja tā vēl nav pieejama.

Izmantot random.choice() lai izvēlētos nejaušu rakstzīmi, ko prezentēsit lietotājam kopā ar tukšajām defisēm. Atkārtojiet vārda rakstzīmes, izmantojot uzskaitīt lai sekotu katras rakstzīmes rādītājam.

Kad atrodat nejauši izvēlēto rakstzīmi, aizstājiet ar to tukšo domuzīmi. Izmantot pievienoties () lai apvienotu rakstzīmju sarakstu pilnā virknē un atgrieztu to.

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

Definējiet funkciju draw_hangman() kas izmanto iespēju skaitu kā parametru. Šī funkcija nodrošina piekārtā cilvēka figūru. Tā kā iespēju skaits turpina samazināties, samazinās arī izdzīvošanas iespējas. Kad ir izsmelts, figūra ir pabeigta un spēle beidzas.

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

deklarēt funkciju, start_hangman_game(), kas nosaka programmas galveno loģiku. Iegūstiet nejaušu vārdu, zvanot uz get_random_word_from_wordlist() funkciju un iegūstiet secību, kas tiek parādīta lietotājam, izmantojot get_some_ letters() funkciju.

Iestatiet iespēju skaitu uz septiņām un inicializējiet mainīgo, atrasts, kā viltus. Jūs to iestatīsit uz taisnība ja vārdā ir uzminētais burts.

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

Pasludiniet cilpu, kas beidzas, kad lietotājs pareizi uzmin vārdu vai izbeidzas iespējas. Sāciet spēli, parādot secību, vārda burtu skaitu un atlikušās iespējas. Lūdziet lietotājam uzminēt burtu un saņemt to, izmantojot ievade () funkciju. Apstipriniet lietotāja ievadīto informāciju, pārbaudot rakstzīmes garumu un to, vai tas ir alfabēts.

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

Ja ievade ir derīga, pārbaudiet, vai vārdam ir rakstzīme, un aizstājiet to, izmantojot iepriekš redzēto procesu, un atjauniniet atrastās vērtības vērtību. Ja rakstzīmes nav, samaziniet iespēju skaitu. Ja ir, pagrieziet atrasto vērtību atpakaļ uz sākotnējo vērtību false.

Ja nav palikušas tukšas domuzīmes, parādiet, ka lietotājs uzvarēja, kā arī veikto minējumu skaitu. Pretējā gadījumā bendes grafiks tiek rādīts atbilstoši atlikušo iespēju skaitam.

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

Definējiet funkciju Hangman spēles spēlēšanai. Ja lietotājs ievada jā, zvaniet uz start_hangman_game() pretējā gadījumā aizveriet spēli ar atbilstošu ziņojumu. Nederīgas ievades gadījumā lūdziet lietotājam ievadīt vēlreiz.

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

bendes spēles rezultāts

Ja uzvarēsit spēli, jūs redzēsit šādu rezultātu:

Ja spēli zaudēsit, tiks parādīta šāda izvade:

Izmantojiet Python, lai izveidotu spēles

Varat izmantot Python, lai izveidotu komandrindas spēles, kā arī grafiskās spēles. Dažas interesantas komandrindas spēles, kuras varat izveidot, izmantojot Python, ietver skaitļu minēšanas spēli, Magic 8 Ball spēli, Mad Libs, Rock/Paper/Scissors un teksta piedzīvojumu spēli.

Dažas jautras grafiskās spēles, kuras varat izveidot ar python, ietver Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Labākā daļa šajās spēlēs ir tā, ka varat tās izveidot, izmantojot tikai Python standarta bibliotēku.