请帮我用Python语言写出运行狼人杀游戏的代码
以下是一个简单的狼人杀游戏的Python代码示例:
import random
# 定义角色类
class Player:
def __init__(self, name, role):
self.name = name
self.role = role
self.alive = True
# 定义游戏类
class WerewolfGame:
def __init__(self):
self.players = []
self.roles = ['狼人', '狼人', '村民', '村民', '预言家', '女巫', '猎人']
self.alive_players = []
# 添加玩家
def add_player(self, name):
role = random.choice(self.roles)
self.roles.remove(role)
player = Player(name, role)
self.players.append(player)
self.alive_players.append(player)
# 游戏进行一轮
def play_round(self):
print('天黑请闭眼...')
# 狼人行动
wolfs = [player for player in self.alive_players if player.role == '狼人']
for wolf in wolfs:
print(wolf.name, '请睁眼,并选择要杀的玩家:')
for i, player in enumerate(self.alive_players):
print(i+1, player.name)
target = int(input()) - 1
victim = self.alive_players[target]
print(wolf.name, '选择了', victim.name, '。')
victim.alive = False
# 天亮
print('天亮了,昨晚死亡的玩家有:')
for player in self.players:
if not player.alive:
print(player.name, '(', player.role, ')')
self.alive_players.remove(player)
# 开始游戏
def start_game(self):
print('狼人杀游戏开始!')
num_players = int(input('请输入玩家人数:'))
for i in range(num_players):
name = input('请输入玩家名称:')
self.add_player(name)
while len(set([player.role for player in self.players])) > 1:
self.play_round()
roles = set([player.role for player in self.players])
print('游戏结束,胜利者为:', roles)
# 实例化游戏对象并开始游戏
game = WerewolfGame()
game.start_game()
请注意,这只是一个简单的示例代码,游戏规则可能并不完整。你可以根据自己的需求和游戏规则进行修改和扩展
原文地址: https://www.cveoy.top/t/topic/inCn 著作权归作者所有。请勿转载和采集!