狼人杀双身份生成
身份牌有: 预言家 女巫 猎人 白神 守卫 禁言长老 小狼 2 隐狼 盗贼 村民 6
玩家8人,每人两张,两牌皆有村民牌者为金宝宝,有狼人牌者为狼人, 设计一个程序完成面杀发牌及游戏过程
'''
规则:
1 玩家8人,每人两张
2 两牌皆有村民牌者为金宝宝
3 有狼人牌者为狼人
4 两张牌不能同时为狼人和预言家
5 至少有一个金宝宝
6 盗贼作为复制牌,可以视作手中的另一张身份牌。当另一个身份是村民时,视为一个金宝宝
狼3 贼1 民6 预1 其他
'''
import random
from random import shuffle
res = []
# 基本身份(除盗贼外)
p = ['预言家','女巫','猎人','白神','守卫','禁言长老','小狼','隐狼','村民']
# 盗贼 选择的另一张身份
bad_guy = random.sample(p, 1)[0]
res.append([bad_guy, '盗贼'])
# 盗贼 为【狼 民 预 其他】
if bad_guy == '预言家':
p.remove('预言家')
p += ['小狼'] + ['村民']*2
res.append(['村民','村民'])
else:
# 盗贼 为【狼 民 其他】
p.remove('预言家')
prophet = random.sample([ i for i in p if not '狼' in i], 1)[0]
res.append([prophet, '预言家'])
# 补充身份牌
if bad_guy != '村民':
res.append(['村民','村民'])
p += ['小狼'] + ['村民']*3
else:
p += ['小狼'] + ['村民']*5
# 删除盗贼和预言家的另一身份牌
p.remove(bad_guy)
p.remove(prophet)
# 打乱身份牌
random.shuffle(p)
# 两两一组 作为将要发到玩家手中的牌
res += [ [p[i], p[i+1] ] for i in range(0,len(p),2) ]
# 随机发放
#random.shuffle(res)
print(res)