您現在的位置是:首頁 > 武術

Python版“狼人殺”:帶你解密臥底程式碼

  • 由 考研交流 發表于 武術
  • 2021-09-13
簡介append(num+2)#給玩家詞語 其中print是除錯用的,sanmeVote是出現相同票數的標誌,spyWin是臥底勝利的判決條件for i in range(0,num):if (i==spy):word[i]=str(list_

誰是臥底 詞語

前言

隨之而起的各大狼人殺APP,則利用線上更高效的陌生人組局和多樣的休閒場景,將社交做到了極致。以假面科技研發的首款狼人殺APP為例,其遊戲模式只是APP中為社互動動服務的敲門磚,使用者基本都是在快速體驗狼人殺遊戲後,將遊戲關係沉澱為社交關係展開互撩。

這種透過狼人殺來APP實現社交目的的現象,在貼吧中尤為壯觀。開啟狼人殺APP貼吧,首頁清一色公會招人、加好友處cp之類帶有社交目的性的帖子,也有不少回帖互動,說明狼人殺已成為使用者進行社交的平臺。

本節為大家解密一下一個最簡單的“狼人殺” 程式碼,只需要3個以上就可以玩。

大致分為幾個階段:

1。分配平民詞語和臥底詞語

2。玩家依次發言

3。根據發言投票認為誰是臥底

4。得到票數最多的玩家出局

5。出局玩家剛好是臥底則平民勝利

6。如果出局玩家是平民則被冤死並繼續第2步

7。當剩下的平民只有1個時臥底勝利。

Python版“狼人殺”:帶你解密臥底程式碼

下面來看下程式碼吧

#!/usr/local/bin/python3

import random

from spyword import spyword

num=int(input(‘請輸入玩家數(至少為3) ’))

#臥底玩家

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 (‘只剩兩名玩家,臥底勝利!’)

有一行程式碼是

from spyword import spyword

這裡spyword是我自己定義的臥底詞字典,執行時把這個檔案放在python的工作目錄下,就可以讓python程式呼叫該字典了。要檢視python工作目錄,你需要執行python後輸入

>>> import os

>>> os。getcwd

當然你也可以更改python工作目錄。

小編推薦一個學python的學習qun 7403,222,34

無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

Python版“狼人殺”:帶你解密臥底程式碼

程式設計思想

輸入玩家數量num,玩家數量為0-num-1,然後定義包含num元素的三個列表:單詞列表、玩家投票列表、死亡玩家列表。列表的下標從0到num-1,隨機生成區域中的數字x,表示X的玩家是臥底,然後分配臥底詞和便民詞。請注意,當提示臥底或被錯誤殺死的玩家時,將列印資訊時的時間下標新增到1,例如,0的下標表示實際上是1號的玩家。在生活中,很少有人習慣於說他們是“第0個人”,除了程式設計師。

在遊戲的每一輪中,擁有最多票數的玩家將被淘汰(同樣的票數將被重新說出),退出的玩家將被列入死亡玩家名單。然後開始下一輪。

所以,如果有num玩家,遊戲最多結束幾輪?答案是num-2,因為只有兩個玩家的遊戲結束了。也就是說,上面的過程需要迴圈num-2次。

總結

Python是一種簡潔、高效、易於理解的高階動態程式語言,許多人也把它稱為“膠水語言”。在接收大型專案時,通常使用Python來編寫主框架,然後在一些特定的模組中使用Java/JS/C++來實現特定的需求。掌握python並不難。透過本節中提到的這個遊戲,我希望您能找到Python的樂趣,並快速找到Python程式設計的訣竅。

素材來源於網路,侵刪

Top