Простые текстовые игры, в которые можно играть из командной строки, — отличные проекты для начинающих.
Вы в настроении поиграть в игру, которую написали сами? Ну, ты в правильном месте. 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.