A parancssorban játszható egyszerű szöveges játékok nagyszerű kezdő projektek.
Van kedved egy olyan játékhoz játszani, amit magad írtál? Nos, jó helyen jársz. A Hangman egy népszerű szókitaláló játék, és minimális erőfeszítéssel elkészítheti saját verzióját.
Ez a játék tökéletes szórakoztató, ismert olyan népszerű tévéjátékokból és sorozatokból, mint a Szerencsekerék, Letterbox és Party Time. A Python pedig kényelmes nyelv egy Hangman klón létrehozásához.
Hogyan kell játszani a Hangman játékot
A Hóhér egy jól ismert játék, ahol az egyik játékos egy szóra gondol, a másik játékos pedig megpróbálja kitalálni azt úgy, hogy meghatározott számú tippet tartalmazó betűket javasol. Az egyik játékos (ebben az esetben a program) a szó minden betűjét jelképező kötőjelek sorozatát mutatja be, kiindulópontként egy karakterrel együtt. A másik játékos (vagy felhasználó) egyesével kitalálja a szóban szereplő karaktereket.
Ha az általuk kitalált betű szerepel a célszóban, a program kitölti a kötőjelet a karakterrel. Ellenkező esetben a játékos elveszít egy esélyt, és a program egy pálcikafigurát húz ki a számadásnak. Összesen hét eséllyel, ha a felhasználó helyesen találja ki a szót, megnyeri a játékot. Ha nem, a program befejezi a pálcikaember rajzát.
Létrehozhat egy listát kedvenc szavaiból, vagy letölthet egy tetsziket Mieliestronk több mint 58 000 angol szót tartalmazó listája. Fedezhet fel és építhet más szórakoztató szöveges játékokat is, mint pl interaktív kvízjáték vagy a szöveges kalandjáték Pythonban.
Hogyan építsük fel a hóhér játékot
A Hangman játék forráskódja a szólista fájllal együtt jelen van ebben GitHub adattár és ingyenesen használható.
Importálja a véletlen modult és definiál egy függvényt, get_random_word_from_wordlist(), egy véletlenszerű szó kiválasztásához a fájlból. A szövegfájl tartalmazhat általános főneveket vagy helyek, állatok, filmek és egyebek nevét az Ön ízlése szerint. Határozzon meg egy listát a téglalap alakú zárójelekkel ([]).
Használja a val vel utasítással megnyitja a fájlt, és átadja a módot as "r" csak olvasható módot jelezve. Ez automatikusan gondoskodik a fájl bezárásáról a blokk végén még hiba esetén is. Ha megnézed a hóhér_szólista.txt fájlt, észreveheti, hogy minden sorban egy szó van, így a fájl minden szót újsor karakterrel választ el.
Adja át az escape karaktert egy újsorhoz (\n) hoz hasított() funkcióval tárolja a korábban meghatározott listában szereplő szavakat. Használat random.choice() véletlenszerű szó visszaadásához a listából.
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
Ezután határozzon meg egy függvényt, get_some_levelers(), amely a véletlenszerűen kiválasztott szót veszi paraméterként. Ez a funkció üres kötőjelek sorozatát jeleníti meg (_) és néhány levelet a felhasználónak.
Üres lista meghatározása leveleket a szóban szereplő összes karakter tárolására. Használja a hőm változó egy olyan karakterlánc tárolására, amely a szó hosszával megegyező számú üres kötőjelet tartalmaz. Használat lista() hogy a karakterláncot karakterlistává alakítsa, és iteráljon rajta. Használat mellékel() a karakter hozzáadásához a listához, ha még nincs jelen.
Használat random.choice() egy véletlenszerű karakter kiválasztásához, amelyet az üres kötőjelekkel együtt bemutat a felhasználónak. Ismételje át a szó karaktereit használva felsorolni hogy nyomon kövesse az egyes karakterek indexét.
Ha megtalálta a véletlenszerűen kiválasztott karaktert, cserélje ki vele az üres kötőjelet. Használat csatlakozik() hogy a karakterlistát egy teljes karakterláncba egyesítse és visszaadja.
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
Határozzon meg egy függvényt draw_hangman() az esélyek számát veszi paraméternek. Ez a funkció az akasztó ember alakját adja meg. Ahogy az esélyek száma folyamatosan csökken, úgy csökkennek a túlélési esélyek is. Ha kimerült, a figura elkészül, és a játék véget ér.
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ál egy függvényt, start_hangman_game(), amely meghatározza a program fő logikáját. Véletlenszerű szóhoz hívja a get_random_word_from_wordlist() funkciót, és a szekvenciát megjeleníti a felhasználónak a segítségével get_some_levelers() funkció.
Állítsa az esélyek számát hétre, és inicializáljon egy változót, megtalált, hamisként. Ezt beállítod igaz ha a kitalált betű jelen van a szóban.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
Deklaráljon egy ciklust, amely akkor ér véget, amikor a felhasználó helyesen találja ki a szót, vagy elfogy az esélye. Kezdje a játékot a sorrend, a szóban lévő betűk számának és a hátralévő esélyeknek a megjelenítésével. Kérje meg a felhasználót, hogy találjon ki egy betűt, és kapja meg a segítségével bemenet() funkció. Érvényesítse a felhasználói bevitelt úgy, hogy ellenőrizze a karakter hosszát és azt, hogy ábécé-e.
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
Ha a bevitel érvényes, ellenőrizze, hogy a karakter benne van-e a szóban, és cserélje ki a korábban látott folyamat segítségével, és frissítse a found értékét. Ha a karakter nincs jelen, csökkentse az esélyek számát. Ha van, állítsa vissza a found értékét a false kezdeti értékre.
Ha nem maradt üres kötőjel, akkor a felhasználó nyert tippjeivel együtt jelenítse meg a hóhér grafikát a hátralévő esélyek számának megfelelően.
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()
Határozzon meg egy függvényt a Hangman játékhoz. Ha a felhasználó igent ad meg, hívja a start_hangman_game() függvényt, ellenkező esetben kilép a játékból a megfelelő üzenettel. Érvénytelen bevitel esetén kérje meg a felhasználót, hogy írja be újra.
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")
A Hóhér játék kimenetele
Ha megnyeri a játékot, a következő kimenetet fogja látni:
A következő kimenetet fogja látni, ha elveszíti a játékot:
Használja a Python-t játékok létrehozásához
A Python segítségével parancssori és grafikus játékokat is készíthet. Néhány érdekes parancssori játék, amelyet Python segítségével építhet, többek között a számkitaláló játék, a Magic 8 Ball játék, a Mad Libs, a Rock/Paper/Scissors és egy szöveges kalandjáték.
Néhány szórakoztató grafikus játék, amelyet a python segítségével építhet, többek között a Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Ezekben a játékokban az a legjobb, hogy csak a Python Standard Library segítségével készítheti el őket.