谁是卧底
谁是卧底也是深受很多人喜欢的游戏,起码要三人以上才能玩,大致分为几个阶段:
1.分配平民词语和卧底词语—>
2.玩家依次发言—>
3.根据发言投票认为谁是卧底—>
4.得到票数最多的玩家出局—>
5.出局玩家刚好是卧底则平民胜利,如果出局玩家是平民则被冤死并继续第2步,当剩下的平民只有1个时卧底胜利。
特殊情况是,出现两名或以上的玩家票数相同,则相同票数的玩家重新发言,然后全体针对这几个玩家投票。
class Wits(object):
''' 谁是卧底'''
def __init__(self,num):
self.num = num
self.list1 = []
self.under = None
def distribution(self):
'''
对游戏人员生成列表并编号,并随机一个卧底
'''
for i in range (self.num):
self.list1.append(i)
self.under = random.choice(self.list1) # 随机一个卧底
def weed_out(self):
'''
淘汰每轮出局的人,并得到最后结果
'''
while len(self.list1) > 2: # 投票环节
out = random.choice(self.list1) # 每轮出局编号
print('发言投票后。。',out,'号被出局')
self.list1.remove(out)
if out == self.under:
break
if self.under in self.list1: # 如果剩下最后两个中 还有卧底 则卧底获胜
print('卧底获胜')
else:
print('平民获胜')
if __name__ == '__main__':
w1 = Wits(5)
w1.distribution()
w1.weed_out()
运行结果就是: