Простите текстови игри, които можете да играете от командния ред, са страхотни проекти за начинаещи.
В настроение ли сте да играете игра, която сте написали сами? Е, вие сте на правилното място. Hangman е популярна игра за отгатване на думи и можете да създадете своя собствена версия с минимални усилия.
Тази игра е перфектен забавник, познат от популярни телевизионни предавания и сериали като Wheel of Fortune, Letterbox и Party Time. А Python е удобен език за използване за изграждане на клонинг на Hangman.
Как се играе играта палач
Hangman е добре позната игра, при която един играч измисля дума, а другият играч се опитва да я отгатне, като предлага букви с фиксиран брой предположения. Един играч (в този случай програмата) представя поредица от тирета, представляващи всяка буква от думата, заедно със знак като отправна точка. Другият играч (или потребител) отгатва знаците, присъстващи в думата, един по един.
Ако познатата от тях буква е в целевата дума, програмата запълва тирето със знака. В противен случай играчът губи един шанс и програмата изчертава елемент на фигурка като резултат. При общо седем възможности, ако потребителят познае думата правилно, той печели играта. Ако не, програмата завършва рисуването на човек с пръчка.
Можете да създадете списък с любимите си думи или да изтеглите един харесван Списъкът на Mieliestronk с повече от 58 000 английски думи. Можете също така да изследвате и създавате други забавни текстови игри, като например интерактивна игра с викторина или а текстово базирана приключенска игра в Python.
Как да построим играта палач
Изходният код на тази игра Hangman, заедно с файла със списъка с думи, присъства в това GitHub хранилище и е безплатен за използване.
Импортирайте случаен модул и дефинирайте функция, get_random_word_from_wordlist(), за да изберете произволна дума от файла. Текстовият файл може да съдържа често срещани съществителни имена или имена на места, животни, филми и други според вашите предпочитания. Дефинирайте списък с помощта на правоъгълните скоби ([]).
Използвай с израз за отваряне на файла и преминаване на режима as "р" показващ режим само за четене. Това автоматично се грижи за затварянето на файла в края на блока дори в случай на грешки. Ако разгледате hangman_wordlist.txt файл, ще забележите, че има една дума на всеки ред, така че файлът разделя всяка дума със знак за нов ред.
Предавайте символа за екраниране за нов ред (\н) към разделяне () функция за съхраняване на всяка дума в списъка, който сте дефинирали по-рано. Използвайте random.choice() за връщане на произволна дума от списъка.
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
След това дефинирайте функция, get_some_letters(), който приема произволно избраната дума като параметър. Тази функция ще покаже поредица от празни тирета (_) и някои писма до потребителя.
Дефиниране на празен списък писма за съхраняване на всички знаци, присъстващи в думата. Използвай темп променлива за съхраняване на низ, който съдържа броя на празните тирета, равни на дължината на думата. Използвайте списък () за да преобразувате низа в списък със знаци и да го итерирате. Използвайте добавям () за да добавите знака към списъка, ако вече не присъства.
Използвайте random.choice() за да изберете произволен знак, който ще представите на потребителя заедно с празните тирета. Итерирайте знаците на думата с помощта изброявам за да следите индекса на всеки знак.
Когато намерите произволно избрания символ, заменете празното тире с него. Използвайте присъединяване() за да обедините списъка със знаци в пълен низ и да го върнете.
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
Дефинирайте функция draw_палач() който приема броя на шансовете като параметър. Тази функция осигурява фигура на обесен човек. Тъй като броят на шансовете продължава да намалява, така и шансовете за оцеляване. Когато се изчерпи, фигурата е пълна и играта приключва.
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("| ")
Декларирайте функция, start_hangman_game(), което определя основната логика на програмата. Вземете произволна дума, като се обадите на get_random_word_from_wordlist() функция и вземете последователността за показване на потребителя, като използвате get_some_letters() функция.
Задайте броя на шансовете на седем и инициализирайте променлива, намерени, като невярно. Ще зададете това на вярно ако познатата буква присъства в думата.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
Декларирайте цикъл, който прекратява, когато потребителят познае думата правилно или изчерпи шансовете си. Започнете играта, като покажете последователността, броя на буквите в думата и оставащите шансове. Помолете потребителя да познае буква и да я получи с помощта на вход() функция. Потвърдете въведеното от потребителя, като проверите дължината на знака и дали е азбука.
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
Ако въведеното е валидно, проверете дали знакът присъства в думата и го заменете, като използвате процеса, видян по-рано, и актуализирайте стойността на намерено. Ако персонажът не присъства, намалете броя на шансовете. Ако е налице, върнете стойността на found обратно към първоначалната стойност false.
Ако няма останали празни тирета, покажете, че потребителят е спечелил заедно с броя направени предположения, в противен случай покажете графиката на палач според броя на оставащите шансове.
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()
Дефинирайте функция за игра на играта палач. Ако потребителят въведе „да“, извикайте start_hangman_game() функция в противен случай излезте от играта със съответното съобщение. В случай на невалидно въвеждане, помолете потребителя да въведе отново.
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")
Резултатът от играта Палач
Ще видите следния резултат, ако спечелите играта:
Ще видите следния резултат, ако загубите играта:
Използвайте Python за създаване на игри
Можете да използвате Python за създаване на игри от командния ред, както и за графични игри. Някои интересни игри с команден ред, които можете да създавате с помощта на Python, включват играта за отгатване на числа, играта Magic 8 Ball, Mad Libs, Rock/Paper/Scissors и текстово-приключенска игра.
Някои забавни графични игри, които можете да създадете с Python, включват Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Най-добрата част от тези игри е, че можете да ги създавате само със стандартната библиотека на Python.