import?random
from?spyword?import?spyword
num=int(input('請輸入玩家數(至少為3)\n'))
#臥底玩家
spy=random.randint(0,num-1)
#隨機產生詞語?定義詞語列表?計算玩家票數的列表?統計死亡玩家的列表
list_rand=spyword.popitem()
word=[]
cnt=[]
dead=[]
#給三個列表賦值
for?i?in?range(0,num):
word.append('a')
cnt.append(0)
dead.append(num+2)
#給玩家詞語?其中print是調試用的,sanmeVote是出現相同票數的標誌,spyWin是臥底勝利的判決條件
for?i?in?range(0,num):
if?(i==spy):
word[i]=str(list_rand[1])
else:
word[i]=str(list_rand[0])
print?(word[i])
sameVote=0
spyWin=0
#遊戲開始
for?x?in?range(0,num-1):
for?k?in?range(0,num):
if?((k?not?in?dead)?&?(sameVote==0)):
print?('%d號玩家發言時間'%(k+1))
print?('發言環節結束')
#將各位玩家的票數置0
for?j?in?range(0,num):
if?(j?not?in?dead):
cnt[j]=0
for?j?in?range(0,num):
if?(j?not?in?dead):
vote2p=int(input('請%d號玩家投票'%(j+1)))-1
cnt[vote2p]=cnt[vote2p]+1
sameVote=0
for?y?in?range(0,num):
if((cnt[y]==max(cnt))?&?(y!=cnt.index(max(cnt)))):
print?('不止壹位玩家得到最高票數,請這些玩家重新發言')
sameVote=1
if?(sameVote==0):
dead[x]=cnt.index(max(cnt))
if?(dead[x]==spy):
print?('臥底得到最多票數,遊戲結束')
spyWin=1
break
print?('%d號玩家被冤死!'%(dead[x]+1))
#遊戲結束
if(spyWin==0):
print?('只剩兩名玩家,臥底勝利!')
spyword是自定義的臥底詞字典,運行時把這個文件放在python的工作目錄下,就可以讓python程序調用該字典了。