数据结构查找,玩家输入一个成语,程序则能输出一个成语,重复上述过程一直到一方无法接龙为止代码
时间: 2024-03-05 20:47:41 浏览: 15
好的,这里提供一种基于哈希表(Python中的字典)实现的成语接龙游戏代码,可以供你参考:
```
# 定义一个函数,用于判断两个成语是否可以接龙
def check(last, current):
if last[-1] == current[0]:
return True
else:
return False
# 读取成语文件,将所有成语存储到字典中
idioms_dict = {}
with open('idioms.txt', 'r', encoding='utf-8') as f:
for line in f:
line = line.strip()
if len(line) > 0:
idioms_dict[line] = 1
# 随机选取一个成语作为起始成语
last_idiom = ''
while not last_idiom:
random_key = random.choice(list(idioms_dict.keys()))
if len(random_key) > 0:
last_idiom = random_key
print('起始成语:', last_idiom)
# 进入游戏循环
while True:
# 玩家输入一个成语
player_input = input('请输入一个成语:')
# 判断玩家输入的成语是否符合要求
if not player_input in idioms_dict:
print('你输入的不是成语或者已经被使用,请重新输入!')
continue
# 判断玩家输入的成语是否可以接龙
if not check(last_idiom, player_input):
print('你输入的成语与上一个成语无法接龙,请重新输入!')
continue
# 在字典中查找一个可以接龙的成语作为回答
computer_input = ''
for key in idioms_dict:
if check(player_input, key):
computer_input = key
break
# 如果没有找到可以接龙的成语,游戏结束
if not computer_input:
print('电脑无法接龙,你赢了!')
break
# 输出电脑的回答
print('电脑回答:', computer_input)
# 更新上一个成语
last_idiom = computer_input
# 从字典中删除已经使用的成语
del idioms_dict[player_input]
del idioms_dict[computer_input]
```
这段代码中,我们首先读取成语文件(假设文件名为 `idioms.txt`),将所有成语存储到字典 `idioms_dict` 中。然后,我们随机选取一个成语作为起始成语,进入游戏循环。在每一轮循环中,玩家输入一个成语,判断是否符合要求,判断是否可以接龙,然后在字典中查找一个可以接龙的成语作为回答,输出电脑的回答,更新上一个成语,从字典中删除已经使用的成语。当电脑无法接龙时,游戏结束,玩家获胜。