📅  最后修改于: 2023-12-03 15:19:28.233000             🧑  作者: Mango
刽子手游戏是一种猜单词游戏,玩家需要猜测一个被隐藏的单词,每次猜一个字母,如果该字母出现在单词中,那么对应的位置就会被显示出来,否则玩家的“错误次数”会增加,当错误次数达到上限时,玩家失败。这个游戏的特别之处在于,它会在控制台上以图形的形式显示出正在构建的“刽子手”,这使得游戏变得更加有趣。
import random
# 单词列表
words_list = ["apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi", "lemon"]
# 生成刽子手game_over图案
game_over = [
" ___ ___ ",
" / _ \ / _ \\",
("| | | | (_) |"),
" \___/ \___/ "
]
# 生成刽子手空图案
empty = [
" ___ ",
" | |",
" | ",
" | ",
" | ",
" | ",
" | ",
" | ",
" | ",
" | ",
" | "
]
# 生成刽子手图案
hangman = [
[
" ___ ",
" | |",
" | o",
" |",
" |",
" |",
" |",
" |",
" |",
" |",
" |"
],
[
" ___ ",
" | |",
" | o",
" | |",
" |",
" |",
" |",
" |",
" |",
" |",
" |"
],
[
" ___ ",
" | |",
" | o",
" | /|",
" |",
" |",
" |",
" |",
" |",
" |",
" |"
],
[
" ___ ",
" | |",
" | o",
" | /|\\",
" |",
" |",
" |",
" |",
" |",
" |",
" |"
],
[
" ___ ",
" | |",
" | o",
" | /|\\",
" | / ",
" |",
" |",
" |",
" |",
" |",
" |"
],
[
" ___ ",
" | |",
" | o",
" | /|\\",
" | / \\",
" |",
" |",
" |",
" |",
" |",
" |"
]
]
def get_secret_word():
"""
随机选择一个单词
"""
return random.choice(words_list)
def get_user_guess():
"""
获取并返回用户输入的字母
"""
while True:
guess = input("请猜一个字母: ")
if guess.isalpha() and len(guess) == 1:
break
else:
print("无效输入,请重新输入")
return guess.lower()
def play(word):
"""
游戏主逻辑
"""
secret_word = list(word)
guessed_word = ["_"] * len(secret_word)
guessed_letters = set()
wrong_guesses = 0
while True:
print("\n\n")
print("".join(empty))
print("\n\n")
if wrong_guesses > 0:
print("\n".join(hangman[wrong_guesses-1]))
print("\n\n")
print(" ".join(guessed_word))
print("\n\n")
print(f"已经猜过的字母: {', '.join(guessed_letters)}")
guess = get_user_guess()
if guess in guessed_letters:
print(f"{guess}已经猜过了,请重新猜测!")
continue
guessed_letters.add(guess)
if guess in secret_word:
for i in range(len(secret_word)):
if secret_word[i] == guess:
guessed_word[i] = guess
if "".join(guessed_word) == "".join(secret_word):
print(" ".join(guessed_word))
print("恭喜你,你赢了!")
break
else:
continue
else:
print(f"{guess}不在单词中,请重新猜测!")
wrong_guesses += 1
if wrong_guesses == len(hangman):
print("\n".join(game_over))
print(f"单词是: {''.join(secret_word)}")
print("很遗憾,你失败了!")
break
def main():
word = get_secret_word()
play(word)
if __name__ == "__main__":
main()
本文介绍了如何使用Python实现刽子手游戏。这个游戏可以帮助程序员提高他们的Python编程能力,特别是对于有兴趣在终端界面上进行开发的程序员。在代码实现过程中,需要用到列表、字符串、循环、条件语句等多种Python知识点。新手程序员可以先理解这些知识点,再进行编程练习。