Простые текстовые игры, в которые можно играть из командной строки, — отличные проекты для начинающих.

Вы в настроении поиграть в игру, которую написали сами? Ну, ты в правильном месте. Hangman — популярная игра на угадывание слов, и вы можете создать свою собственную версию с минимальными усилиями.

Эта игра является идеальным развлечением, знакомым по популярным телевизионным игровым шоу и сериалам, таким как «Колесо фортуны», «Почтовый ящик» и «Время вечеринки». И Python — удобный язык для создания клона Hangman.

Как играть в игру «Виселица»

Виселица — известная игра, в которой один игрок загадывает слово, а другой пытается его угадать, предлагая буквы с фиксированным числом отгадок. Один игрок (в данном случае программа) представляет последовательность черточек, представляющих каждую букву слова, вместе с символом в качестве отправной точки. Другой игрок (или пользователь) угадывает символы, присутствующие в слове, один за другим.

Если буква, которую они угадывают, находится в целевом слове, программа заполняет тире этим символом. В противном случае игрок теряет один шанс, и программа рисует элемент фигурки в качестве подсчета. В общей сложности семь шансов, если пользователь правильно угадывает слово, он выигрывает игру. Если нет, программа завершает рисование человека-палки.

Вы можете создать список своих любимых слов или загрузить его, например Список Милиестронка из более чем 58 000 английских слов. Вы также можете исследовать и создавать другие забавные текстовые игры, такие как интерактивная викторина или текстовая приключенческая игра в Питоне.

Как создать игру «Виселица»

Исходный код этой игры «Виселица» вместе с файлом со списком слов находится в этом Репозиторий GitHub и может использоваться бесплатно.

Импортировать случайный модуль и определить функцию, get_random_word_from_wordlist(), чтобы выбрать случайное слово из файла. Текстовый файл может содержать нарицательные существительные или названия мест, животных, фильмов и многое другое по вашему вкусу. Определите список, используя прямоугольные скобки ([]).

Использовать с оператор, чтобы открыть файл и передать режим как 'р' указывает режим только для чтения. Это автоматически обеспечивает закрытие файла в конце блока даже в случае ошибок. Если вы просматриваете виселица_wordlist.txt файл, вы заметите, что в каждой строке присутствует одно слово, поэтому файл разделяет каждое слово символом новой строки.

Передайте escape-символ для новой строки (\n) к расколоть() функция для сохранения каждого слова в списке, который вы определили ранее. Использовать случайный.выбор() чтобы вернуть случайное слово из списка.

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(), который принимает случайно выбранное слово в качестве параметра. Эта функция отобразит последовательность пустых тире (_) и несколько писем пользователю.

Определить пустой список буквы для хранения всех символов, присутствующих в слове. Использовать температура переменная для хранения строки, содержащей количество пустых дефисов, равное длине слова. Использовать список() чтобы преобразовать строку в список символов и выполнить итерацию по ней. Использовать добавить() чтобы добавить символ в список, если он еще не присутствует.

Использовать случайный.выбор() выбрать случайный символ, который вы собираетесь представить пользователю вместе с пустыми тире. Перебирайте символы слова, используя перечислить чтобы отслеживать индекс каждого символа.

Когда вы найдете случайно выбранный символ, замените им пустое тире. Использовать присоединиться() чтобы объединить список символов в полную строку и вернуть ее.

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_hangman() который принимает количество шансов в качестве параметра. Эту функцию обеспечивает фигура повешенного. Поскольку количество шансов продолжает уменьшаться, уменьшаются и шансы на выживание. Когда она исчерпана, фигурка завершена, и игра заканчивается.

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.