Proste gry tekstowe, w które można grać w wierszu poleceń, to świetne projekty dla początkujących.

Czy masz ochotę zagrać w grę, którą sam napisałeś? Cóż, jesteś we właściwym miejscu. Wisielec to popularna gra polegająca na odgadywaniu słów i możesz stworzyć własną wersję przy minimalnym wysiłku.

Ta gra to doskonała rozrywka, znana z popularnych teleturniejów i seriali, takich jak Wheel of Fortune, Letterbox i Party Time. A Python jest wygodnym językiem do zbudowania klona Wisielca.

Jak grać w grę Wisielec

Wisielec to dobrze znana gra, w której jeden gracz wymyśla słowo, a drugi próbuje je odgadnąć, sugerując litery z ustaloną liczbą zgadnięć. Jeden gracz (w tym przypadku program) przedstawia sekwencję kresek reprezentujących każdą literę słowa wraz ze znakiem jako punktem wyjścia. Drugi gracz (lub użytkownik) odgaduje znaki występujące w słowie, jeden po drugim.

Jeśli odgadnięta litera znajduje się w słowie docelowym, program wypełnia myślnik znakiem. W przeciwnym razie gracz traci jedną szansę, a program losuje element kreski jako sumę. W sumie siedem szans, jeśli użytkownik poprawnie odgadnie słowo, wygrywa grę. Jeśli nie, program dokończy rysowanie człowieka z patyków.

instagram viewer

Możesz utworzyć listę swoich ulubionych słów lub pobrać podobne Lista Mieliestronk zawierająca ponad 58 000 angielskich słów. Możesz także odkrywać i tworzyć inne zabawne gry tekstowe, takie jak interaktywna gra quizowa lub tekstowa gra przygodowa w Pythonie.

Jak zbudować grę Wisielec

Zawiera kod źródłowy tej gry Wisielec wraz z plikiem listy słów Repozytorium GitHub i jest darmowy.

Importuj losowy moduł i zdefiniuj funkcję, get_random_word_from_wordlist(), aby wybrać losowe słowo z pliku. Plik tekstowy może zawierać rzeczowniki pospolite lub nazwy miejsc, zwierząt, filmów i nie tylko w zależności od upodobań. Zdefiniuj listę za pomocą nawiasów prostokątnych ([]).

Użyj z instrukcja, aby otworzyć plik i przekazać tryb jako 'R' wskazując tryb tylko do odczytu. To automatycznie dba o zamknięcie pliku na końcu bloku, nawet w przypadku błędów. Jeśli przeglądasz hangman_wordlist.txt plik, zauważysz, że w każdym wierszu znajduje się jedno słowo, więc plik oddziela każde słowo znakiem nowej linii.

Przekaż znak ucieczki dla nowej linii (\N) do podział() funkcja do przechowywania każdego słowa na liście, którą zdefiniowałeś wcześniej. Używać losowy.wybór() aby zwrócić losowe słowo z listy.

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

Następnie zdefiniuj funkcję, get_some_letters(), który przyjmuje losowo wybrane słowo jako parametr. Ta funkcja wyświetli sekwencję pustych myślników (_) i kilka listów do użytkownika.

Zdefiniuj pustą listę listy aby zapisać wszystkie znaki występujące w słowie. Użyj temp zmienna do przechowywania ciągu zawierającego liczbę pustych myślników równą długości słowa. Używać lista() aby przekonwertować ciąg na listę znaków i iterować po nim. Używać dodać() aby dodać znak do listy, jeśli jeszcze go nie ma.

Używać losowy.wybór() aby wybrać losową postać, którą zaprezentujesz użytkownikowi wraz z pustymi myślnikami. Iteruj po znakach słowa using wyliczać aby śledzić indeks każdego znaku.

Kiedy znajdziesz losowo wybrany znak, zastąp nim pusty myślnik. Używać dołączyć() aby ujednolicić listę znaków w pełny ciąg i zwrócić go.

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

Zdefiniuj funkcję rysuj_wisielca() który przyjmuje liczbę szans jako parametr. Ta funkcja zapewnia postać wiszącego człowieka. Ponieważ liczba szans stale się zmniejsza, zmniejszają się również szanse na przeżycie. Po wyczerpaniu figurka jest kompletna i gra się kończy.

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

zadeklarować funkcję, start_hangman_game(), który definiuje główną logikę programu. Uzyskaj losowe słowo, dzwoniąc pod numer get_random_word_from_wordlist() funkcję i uzyskaj sekwencję do wyświetlenia użytkownikowi za pomocą get_some_letters() funkcjonować.

Ustaw liczbę szans na siedem i zainicjuj zmienną, znaleziony, jako fałszywe. Ustawisz to na PRAWDA jeśli odgadnięta litera jest obecna w słowie.

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

Zadeklaruj pętlę, która kończy się, gdy użytkownik poprawnie odgadnie słowo lub gdy skończą się szanse. Rozpocznij grę, wyświetlając sekwencję, liczbę liter w słowie i pozostałe szanse. Poproś użytkownika, aby odgadł literę i odebrał ją za pomocą wejście() funkcjonować. Sprawdź poprawność danych wprowadzonych przez użytkownika, sprawdzając długość znaku i czy jest to 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

Jeśli dane wejściowe są prawidłowe, sprawdź, czy znak jest obecny w słowie i zastąp go, korzystając z procesu opisanego wcześniej i zaktualizuj wartość znalezionego. Jeśli postać nie jest obecna, zmniejsz liczbę szans. Jeśli jest obecny, zmień wartość found z powrotem na wartość początkową false.

Jeśli nie ma już pustych myślników, wyświetl, że użytkownik wygrał wraz z liczbą podjętych prób, w przeciwnym razie wyświetl grafikę kata zgodnie z liczbą pozostałych szans.

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

Zdefiniuj funkcję do gry w Wisielca. Jeśli użytkownik wprowadzi tak, wywołaj start_hangman_game() w przeciwnym razie wyjdź z gry z odpowiednim komunikatem. W przypadku błędnego wprowadzenia poproś użytkownika o ponowne wprowadzenie.

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

Wynik gry Wisielec

Jeśli wygrasz grę, zobaczysz następujące dane wyjściowe:

Jeśli przegrasz grę, zobaczysz następujące dane wyjściowe:

Używaj Pythona do tworzenia gier

Możesz używać Pythona do tworzenia gier z wiersza poleceń, a także gier graficznych. Niektóre interesujące gry z wiersza poleceń, które można zbudować za pomocą Pythona, to gra polegająca na odgadywaniu liczb, gra Magic 8 Ball, Mad Libs, Rock/Paper/Scissors i tekstowa gra przygodowa.

Niektóre zabawne gry graficzne, które możesz zbudować za pomocą Pythona, to Kółko i krzyżyk, Labirynt, Wąż, Pacman, Pamięć, Życie. Najlepszą częścią tych gier jest to, że można je zbudować za pomocą samej biblioteki standardowej Pythona.