用Python写一个狼人杀游戏
时间: 2023-09-14 14:12:01 浏览: 530
好的,我可以给你提供一个简单的狼人杀游戏的代码示例:
```python
import random
# 角色列表
roles = ['狼人', '狼人', '预言家', '女巫', '猎人', '村民', '村民', '村民']
# 随机分配角色
random.shuffle(roles)
# 游戏进行标志
game_over = False
# 游戏循环
while not game_over:
# 显示当前存活的玩家
print('当前存活的玩家:')
for i in range(len(roles)):
if roles[i] != '死亡':
print(i+1, end=' ')
print('\n')
# 狼人行动
print('狼人请睁眼,选择要杀的玩家:')
for i in range(len(roles)):
if roles[i] == '狼人':
print(i+1, end=' ')
print('\n')
wolf_choice = int(input('请选择要杀的玩家号码:'))
print('狼人请闭眼\n')
# 预言家行动
print('预言家请睁眼,选择要查验的玩家:')
for i in range(len(roles)):
if roles[i] != '死亡' and roles[i] != '预言家':
print(i+1, end=' ')
print('\n')
seer_choice = int(input('请选择要查验的玩家号码:'))
print('预言家请闭眼\n')
if roles[seer_choice-1] == '狼人':
print('预言家查验结果:', seer_choice, '号玩家是狼人\n')
else:
print('预言家查验结果:', seer_choice, '号玩家不是狼人\n')
# 女巫行动
print('女巫请睁眼,是否使用解药?')
antidote_choice = input('输入 y 或 n:')
if antidote_choice == 'y':
print('女巫请指定要救的玩家:')
for i in range(len(roles)):
if roles[i] == '死亡':
print(i+1, end=' ')
print('\n')
save_choice = int(input('请选择要救的玩家号码:'))
roles[save_choice-1] = '村民'
print('女巫已使用解药救活', save_choice, '号玩家\n')
else:
print('女巫本轮未使用解药\n')
print('女巫请闭眼\n')
# 猎人行动
if roles[wolf_choice-1] == '猎人':
print('猎人已死亡,请选择一名玩家带走:')
for i in range(len(roles)):
if roles[i] != '死亡':
print(i+1, end=' ')
print('\n')
hunter_choice = int(input('请选择要带走的玩家号码:'))
roles[hunter_choice-1] = '死亡'
print(hunter_choice, '号玩家已被带走\n')
# 判断游戏是否结束
wolf_count = roles.count('狼人')
if wolf_count == 0:
print('游戏结束,好人胜利')
game_over = True
elif wolf_count >= len(roles)/2:
print('游戏结束,狼人胜利')
game_over = True
else:
# 天亮了,死亡的玩家被公布
for i in range(len(roles)):
if roles[i] == '死亡':
print(i+1, '号玩家已死亡')
roles[i] = '死亡2'
```
这个代码只是一个简单的狼人杀游戏的框架,你可以根据需要添加更多的细节和玩法。
阅读全文