今天心血来潮,想搞点有意思的编程小玩意儿,就琢磨着弄个Hangman游戏。这名字听起来有点吓人,“上吊的人”,哈哈,就是个猜单词的游戏。
小时候经常和同学们在课间玩这个,拿张纸,一支笔就能玩。规则也简单:
- 我先在心里想一个单词,然后在纸上画几个横线,每个横线代表一个字母的位置。
- 然后让其他人猜这个单词里有什么字母。
- 要是猜对,我就把这个字母写在对应的横线上。
- 要是猜错,我就画“上吊的人”的一笔,脑袋,身子,胳膊腿儿啥的。
- 如果在“上吊的人”画完之前,单词被猜出来,那猜的人就赢,反之,出题的人赢。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
这回我用 Python 来写这个游戏,毕竟 Python 用起来顺手,而且代码看起来也清楚。
第一步:我先得弄个单词库,让程序能从里面随机挑一个单词出来。简单起见,我就直接在代码里写一个单词列表,都是些常见的水果:
words = ['apple', 'banana', 'orange', 'grape', 'watermelon']
第二步:得有个函数来负责从单词库里随机挑一个单词:
import random
def choose_word(word_list):
return *(word_list)
这里用到 Python 自带的 random
模块,里面的 choice
函数可以直接从列表里随机选一个元素出来。
第三步: 游戏的主体部分,我用一个 while
循环来实现:
def play_hangman():
word_to_guess = choose_word(words)
guessed_letters = []
tries = 6 # 可以猜错的次数
# 显示初始的横线
display = "_" len(word_to_guess)
print(display)
while tries > 0 and "_" in display:
guess = input("猜一个字母: ").lower()
# 检查输入
if len(guess) != 1 or not *():
print("请输入一个有效的字母。")
continue
if guess in guessed_letters:
print("你已经猜过这个字母。")
continue
guessed_*(guess)
if guess in word_to_guess:
# 更新显示
new_display = ""
for i in range(len(word_to_guess)):
if word_to_guess[i] == guess:
new_display += guess
else:
new_display += display[i]
display = new_display
print("猜对!", display)
else:
tries -= 1
print("猜错,你还有", tries, "次机会。")
# 游戏结束
if "_" not in display:
print("恭喜你,猜对!单词是", word_to_guess)
else:
print("很遗憾,你没有猜出来。单词是", word_to_guess)
- 先用
choose_word
函数选一个单词。 - 用一个列表
guessed_letters
来记录猜过的字母。 - 设定猜错次数
tries
为 6 次。 - 用
display
变量来显示当前的猜测情况,一开始全是横线。 while
循环里,让玩家输入猜测的字母。- 检查输入是不是有效的字母,是不是已经猜过。
- 如果猜对,就更新
display
,把猜对的字母显示出来。 - 如果猜错,就减少一次机会。
- 循环直到猜对所有字母,或者猜错次数用完。
- 根据结果,显示游戏结束的信息。
运行效果
把上面的代码保存成一个 .py
文件,比如 ,然后在命令行里运行 python *
,就可以开始玩!
猜一个字母: a
猜对! a____a
猜一个字母: e
猜错,你还有 5 次机会。
猜一个字母: b
猜对! ba_a_a
猜一个字母: n
猜对! banana
恭喜你,猜对!单词是 banana
实现这个小游戏还是挺有成就感的。虽然简单,但也算是把 Python 的一些基本用法都过一遍,挺适合新手朋友们练手的。而且自己玩自己写的游戏,感觉还真不一样!