Lihtsad tekstimängud, mida saate käsureal mängida, on suurepärased algajate projektid.

Kas teil on tuju mängida mängu, mille olete ise kirjutanud? Noh, sa oled õiges kohas. Hangman on populaarne sõnade äraarvamise mäng ja saate luua oma versiooni minimaalse vaevaga.

See mäng on täiuslik meelelahutaja, mis on tuttav populaarsetest telesaadetest ja sarjadest, nagu Õnneratas, Letterbox ja Party Time. Ja Python on mugav keel Hangmani klooni koostamiseks.

Kuidas mängida Hangman mängu

Hangman on tuntud mäng, kus üks mängija mõtleb sõna ja teine ​​mängija proovib seda ära arvata, soovitades tähti kindla arvu arvamistega. Üks mängija (antud juhul programm) esitab sidekriipsude jada, mis tähistab sõna iga tähte, koos tähemärgiga lähtepunktina. Teine mängija (või kasutaja) arvab ükshaaval ära sõnas olevad märgid.

Kui täht, mille nad arvavad, on sihtsõnas, täidab programm kriipsu märgiga. Vastasel juhul kaotab mängija ühe võimaluse ja programm loosib tulemuseks kriipsujuku elemendi. Kokku seitsmel juhul, kui kasutaja arvab sõna õigesti, võidab ta mängu. Kui ei, siis programm lõpetab pulgamehe joonistamise.

Saate luua oma lemmiksõnade loendi või alla laadida ühe meeldiva Mieliestronki loend, mis sisaldab enam kui 58 000 ingliskeelset sõna. Samuti saate uurida ja luua muid lõbusaid tekstipõhiseid mänge, näiteks interaktiivne viktoriinimäng või a tekstipõhine seiklusmäng Pythonis.

Kuidas ehitada Hangman mäng

Selle Hangmani mängu lähtekood koos sõnade loendi failiga on selles olemas GitHubi hoidla ja on tasuta kasutatav.

Importige juhuslik moodul ja määratleda funktsioon, hanki_juhuslik_sõna_sõnaloendist(), et valida failist juhuslik sõna. Tekstifail võib teie maitse järgi sisaldada tavalisi nimisõnu või kohtade, loomade, filmide ja muu nimesid. Määratle loendi kasutades ristkülikukujulisi sulgusid ([]).

Kasuta koos avaldus faili avamiseks ja režiimi edastamiseks as 'r' mis näitab kirjutuskaitstud režiimi. See hoolitseb automaatselt ploki lõpus oleva faili sulgemise eest isegi vigade korral. Kui vaatate hangman_wordlist.txt faili, märkate, et igal real on üks sõna, nii et fail eraldab iga sõna reavahetuse märgiga.

Andke reavahetuse paomärk (\n) juurde split () funktsioon salvestada iga sõna varem määratletud loendis. Kasuta random.choice() loendist juhusliku sõna tagastamiseks.

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

Järgmisena määrake funktsioon, hanki_mõned_kirjad(), mis võtab parameetrina juhuslikult valitud sõna. See funktsioon kuvab tühjade kriipsude jada (_) ja mõned kirjad kasutajale.

Määrake tühi loend kirju et salvestada kõik sõnas olevad märgid. Kasuta temp muutuja stringi salvestamiseks, mis sisaldab sõna pikkusega võrdsete tühikute arvu. Kasuta nimekiri() stringi märkide loendiks teisendamiseks ja selle üle itereerimiseks. Kasuta lisa () märgi lisamiseks loendisse, kui see pole veel olemas.

Kasuta random.choice() juhusliku tähemärgi valimiseks, mida kavatsete koos tühjade kriipsudega kasutajale esitada. Korrake sõna tähemärke kasutades loetlema iga märgi indeksi jälgimiseks.

Kui leiate juhuslikult valitud märgi, asendage tühi kriips sellega. Kasuta liitu () märkide loendi täielikuks stringiks ühendamiseks ja selle tagastamiseks.

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

Määratlege funktsioon draw_hangman() see võtab parameetrina võimaluste arvu. See funktsioon annab rippuva mehe figuuri. Kuna võimaluste arv väheneb, vähenevad ka ellujäämise võimalused. Kui ammendub, on kujund valmis ja mäng lõppeb.

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

Funktsiooni deklareerimine, start_hangman_game(), mis määratleb programmi peamise loogika. Hankige juhuslik sõna, helistades numbrile hanki_juhuslik_sõna_sõnaloendist() funktsiooni ja saada jada kasutajale kuvamiseks kasutades hanki_mõned_kirjad() funktsiooni.

Määrake võimaluste arvuks seitse ja lähtestage muutuja, leitud, kui vale. Seadistate selle tõsi kui arvatav täht on sõnas olemas.

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

Kuulutage välja tsükkel, mis lõpeb, kui kasutaja arvab sõna õigesti ära või kui võimalused saavad otsa. Alustage mängu järjestuse, sõnas olevate tähtede arvu ja järelejäänud võimaluste kuvamisega. Paluge kasutajal täht ära arvata ja selle abil kätte saada sisend() funktsiooni. Kinnitage kasutaja sisestus, kontrollides märgi pikkust ja seda, kas tegemist on tähestikuga.

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

Kui sisend on kehtiv, kontrollige, kas tähemärk on sõnas, ja asendage see varem nähtud protsessi abil ja värskendage leitud väärtust. Kui tegelast pole, vähendage võimaluste arvu. Kui see on olemas, muutke leitud väärtus tagasi algväärtuseks false.

Kui tühje kriipse pole järel, kuvage kasutaja võitnud oletuste arvuga, vastasel juhul kuvatakse timuka graafika vastavalt järelejäänud võimaluste arvule.

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

Määrake funktsioon Hangman mängu mängimiseks. Kui kasutaja sisestab jah, helistage start_hangman_game() funktsioon vastasel juhul väljub mängust vastava sõnumiga. Vale sisestuse korral paluge kasutajal uuesti sisestada.

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

Hangman mängu väljund

Kui võidate mängu, näete järgmist väljundit:

Kui kaotate mängu, näete järgmist väljundit:

Kasutage mängude loomiseks Pythonit

Pythoni abil saate luua nii käsureamänge kui ka graafilisi mänge. Mõned huvitavad käsureamängud, mida saate Pythoni abil luua, hõlmavad numbrite äraarvamise mängu, Magic 8 Ball mängu, Mad Libsi, Rock/Paper/Scissorsi ja teksti-seiklusmängu.

Mõned lõbusad graafilised mängud, mida saate pythoniga luua, on Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Nende mängude parim osa on see, et saate neid luua ainult Pythoni standardteegi abil.