昆明捷成斌文化傳播有限公司 王嘉秀楠
圍簽是一種流行于云南省大理白族自治州部分地區的傳統概率型游戲。大理作為云南省的歷史文化名城,根據有關資料記載:早在公元7世紀中葉洱海流域就已繁衍出了強大的地方民族部落[1]。在地方傳說里到了南詔、大理國時期圍簽已經出現并流行開來。此游戲以“圍獵”為原型,是白族人民集體創造的智慧結晶,游戲中蘊含著的豐富數學知識無疑是白族民眾日常生活中最好的“思維訓練器”。而隨著科技的進步,人民生活條件的不斷提高,一直以來在民間埋沒的圍簽必須順應時代的發展,從現實走向虛擬,才能得到普及和廣泛的認可。因此,筆者設計了一款圍簽電子網絡游戲,且敘述了圍簽的游戲基本規則和發展歷史,以及該游戲的開發設計基本過程和實現方法。主要實現如:開始游戲、扔骰子、輸贏計算等功能。
在科技日新月異,全球化的大背景下,人們生產生活不斷提高,娛樂活動也越加豐富,而一些如圍簽一樣的傳統游戲已經陷入失傳的風險當中。因此圍簽需要發展和進步,通過JavaScript的基本編程方法[2]和互聯網等新興技術相結合則可以實現跨平臺游玩,增加趣味性,這樣才能被廣泛認知和走向國際。
圍簽屬于白族民間的一種傳統概率型游戲,有著較為悠久的歷史以及文化底蘊。圍簽的發源地大理作為我國西南重要的文化中心,素來就有“文獻名邦”的美譽。在公元7世紀下半葉大理一帶的社會經濟取得了較大的發展,出現了一些具有特殊性質的城邑聚落[3]。到了公元8世紀在蒙舍詔首領皮邏閣的帶動下建立起了南詔國[4],而大理一帶則成為了南詔國重要的政治、經濟、文化中心。由于南詔國地處我國西南古代的重要經商要道之上,可以說是通往東南亞的咽喉要道,所以其商貿頗為發達,而圍簽這樣的概率型游戲則成為了最好的“數學課本”。圍簽中蘊含著我國傳統的數學知識,比如其中的支數和柱數就是根據《易經》像數原理設計的。又因為這種游戲以少數民族地區流行的圍獵活動為基礎,生動形象,可謂是從老至少人人皆愛。到了公元10-11世紀,由于大理國采取一系列重視國家經濟的舉措,人民安居樂業,圍簽也成為了一種廣泛流行的游戲。明代時隨著云南一帶商幫的發展圍簽又成為了民間最好的“思維訓練器”,并且逐步演變成了一種傳統文化,每逢春節的時候白族民眾都喜愛聚在一起游玩。圍簽作為一種融吉慶、歡樂、休閑、數學等因素為一體的游戲,擁有非常豐富的文化內涵,是白族先民把人和自然關聯的創造性民俗活動,可以說它極具價值。但隨著時代的發展,人民娛樂生活得越加豐富,圍簽這種游戲就開始顯得有那么一些跟不上時代了,游玩的人數越來越少甚至已經陷入失傳的風險之中。不過幸運的是隨著互聯網技術的發展,我們可以通過技術手段,把這種游戲從現實搬入到虛擬世界中,向更多人普及和推廣這種即將失傳的民族游戲。
圍簽牌一般由竹子制成,總共有134支牌簽,并分別設有十種動物,每種動物代表不同柱數。分別為:老獅子1支,代表64柱;老虎2支,每支代表32柱;豹子4支,每支代表16柱;順1支,代表16柱;狗2支,每支代表12柱;鷹4支,每支代表10柱;馬鹿8支,每支代表8柱;獐子16支,每支代表4柱;兔子32支,每支代表2柱;小雞64支,每支代表1柱;總共為528柱。
游玩大概在2-10人左右,并準備6顆骰子用于擲于大碗中看點數,6顆骰子組合出的不同點數代表可得到不同動物。首先誰擲出的單個骰子點數大誰就是開局者;其次游戲分為正擲和分擲兩個過程。正擲時擲出不同的點數組合代表該玩家獲得不同的動物簽,例如:擲出1顆紅4點可獲得一支小雞簽;擲出2顆紅4點可獲得一支小兔簽;擲出4顆幺點可獲得一支狗簽等。要想獲得柱數多的猛獸,6顆骰子的組合就越復雜,得到的概率也就越低。
當游戲中獲得概率高的小雞和兔子全部被玩家分完,如還剩下其他動物簽未分完時則進入分擲階段,此階段則通過放寬條件獲得動物簽。如:原本需要擲出3顆4點,或者2顆4點的同時有兩對不同點黑面的就可得一支馬鹿簽,而在分擲階段只需擲出2顆4點即可再擲一次,第二次中有1顆4點就可得馬鹿簽。但需要注意的是,第二次擲時若出現其他動物簽,甚至是大型猛獸簽都是不算數的。
桌面上所有的牌簽分完以后,計算每個人所得的柱數,柱數最多者即為贏家,并可成為下一局的開局者。
同時有以下特殊情況:如有擲出6顆紅4點的玩家可獲得桌面上所有牌簽,包括別人已獲得的牌簽,并且獲得勝利。若擲出6顆同點黑面的骰子則桌面上剩余的所有牌簽都歸擲出者。在分獅子時擲出123456的順色面按照規則可再擲一次,再擲一次后又擲出順色面則按照擲出6顆紅4點處理[5]。
需要注意的是以上規則只是較為流行的一種規則,在一些地區可能略有差異,但大體而言都不會偏離太多。此游戲設計也將會按照以上規則進行。
軟件的總體設計結構,如圖1所示。

圖1 游戲設計結構圖Fig.1 Game design structure diagram
進入主界面后玩家可以選擇單人模式、多人模式、網絡對戰三個模式。
單人模式下將會提供1-10個AI和玩家對戰并輪流擲骰子。
多人模式最多可以提供10個空位。有2人即可開始游戲。開始游戲后玩家通過同一設備進行對戰。
網絡對戰則依托于云服務器技術,開始后在30s內匹配1-10個在線玩家,匹配過程中使用計數器并開始倒計時,倒計時有動畫以及數字提示以減少玩家等待過程中的乏味,當成功匹配到玩家時就可開始對戰,對戰結束后則將玩家游玩的結果記錄至數據庫當中。
游戲模式選擇以及游戲主界面的背景則使用JS動畫進行模擬以增加整體美觀度。同時還可由玩家自由選擇開關游戲背景音樂,使得游戲更加豐富多彩。
游戲開始后可以通過基本的parseInt(Math.random()×(6-1+1)+1,10);來模擬骰子點數[6],按照玩家或者AI擲出數字大小確定游戲中后續階段擲骰子的順序,具體排序方法為創建一個函數,負責對玩家擲出骰子的數據進行冒泡排序并將結果返回,擲出點數越大的玩家或者AI則在游戲后續階段中越先擲骰子,此后每一輪都按照該順序來擲出骰子,直到游戲結束。在出現相同點數的情況下則由計算機通過隨機數方法在后臺模擬出1-10范圍內的隨機數,如果數值在1-5范圍內則優先擲骰子,這樣就可以保證玩家在擲出相同點數時有50%的概率拿到優先權。其中擲骰子等過程則是通過簡單的JS動畫來進行實現,這樣就可以更多地增加游戲趣味性。
3.2.1 正擲階段
此階段中按照圍簽正擲階段規則進行,可以通過隨機數模擬骰子點數。如擲出與動物相對應的點數則該玩家或者AI獲得的柱數增加,實現過程則采用邏輯判斷,例如當玩家或者AI擲出一顆紅4點時就可和所有紅4點可得的條件進行判斷,如無法和所有大于1柱的動物條件相匹配則獲得一支小雞簽。獲得動物畫面則使用語音提示以及動畫效果增強游戲互動性。如果玩家沒有達到任何獲得動物簽的條件,則用文字以及語音提示“落空了”。
3.2.2 分擲階段
當判斷場上無任何小雞以及兔簽時則進入此階段,此階段中按照分擲規則進行,如擲出對應點數則該玩家或者AI可以獲得柱數增加。進入該階段時擁有語音以及文字提示,用以提醒玩家注意游戲階段的改變,進入后則在后臺調用相關的分擲規則函數。分擲階段對于獲得動物簽的基本判定原理和正擲階段類似,但多增加一個條件判斷語句用以檢驗玩家或者AI是否可以再擲一次。例如玩家或者AI擲出2顆4點時則對全場提示該玩家和AI可以再擲一次。獲得動物和落空時采用和正擲階段相同的動畫進行提示。
3.2.3 特殊情況
在玩家或者AI擲骰子的過程中,都對是否擲出特殊情況進行優先的邏輯判斷,如擲出上文中所描述的特殊情況則按照上文規則決定柱數增加或者減少,以及勝負,為了保證游玩體驗在單人模式下如出現影響勝負的特殊情況則玩家可以選擇撤回并重新擲一次。
在游戲界面右上角將會給玩家提供中途退出的按鈕,玩家點擊后將會用調用一個警告框來提示玩家是否確認退出游戲,這樣可以最大限度地防止玩家在游戲過程中因為誤觸而退出游戲。如果玩家點擊確認即可退出游戲。單人模式或者多人模式退出后不計算勝負。網絡對戰中如果超過1min未擲骰子則按照中途退出處理。網絡對戰中如果中途退出,則算失敗,并且擁有的所有柱數返還至場上,參與人數進行減一處理。
勝負結算時則按照傳統規則即十個玩家或者九個AI一個人的情況下超過53柱則為勝利;九個玩家或者八個AI一個人的情況下超過59柱則為勝利;八個玩家或者七個AI一個人的情況下超過66柱則為勝利;七個玩家或者六個AI一個人的情況下超過75柱則為勝利;六個玩家或者五個AI一個人的情況下超過88柱則為勝利;五個玩家或者四個AI一個人的情況下超過105柱則為勝利;四個玩家或者三個AI一個人的情況下超過132柱則為勝利;三個玩家或者二個AI一個人的情況下超過176柱則為勝利;二個玩家或者一個AI一個人的情況下超過264柱則為勝利;未達到以上條件者則算失敗。游戲結束后通過獲取每個玩家柱數進行從大到小的排名,讓玩家獲得更好的競爭體驗。如果出現特殊情況則按照3.2.3中提到的特殊情況處理。
在網絡對戰模式下得益于現在云計算以及云服務器這樣的多重分布式計算資源進行協同工作的全新互聯網模式[7],游戲可將玩家勝利或者失敗記錄以及總的游玩數記錄在云數據庫當中,并且將玩家的勝利數和總游玩數相除從而得到玩家的勝率,這樣的措施可以激起玩家對游戲的興趣,最大程度留住玩家。
圍簽作為我國傳統民族文化的一部分,需要積極保護和傳承并且提高普及度。在娛樂生活越來越豐富的今天,包括圍簽在內的諸多傳統游戲已經逐漸跟不上時代的步伐,因此創新才是唯一的出路。但和諸多地方民族傳統運動以及游戲一樣,圍簽不可局限于少數地區乃至一個民族的內部。因此圍簽需要放眼全國乃至全球,以吸引更多的人前來感受我國傳統民族文化的奧妙和精髓。同時在發展過程中應當順應時代的潮流,符合時代發展規律,遵循時代特色精神,使得其更具有獨特民族的風格,并在豐富人民群眾精神和文化生活的同時促進民族團結和民族地區旅游業以及社會經濟、文化、藝術的發展,以便更好地建設和宣傳我國的傳統民族文化。
引用
[1] 梁曉強.南詔史[M].北京:中國社會科學出版社,2013.
[2] 吳以欣,陳小寧.JavaScript腳本程序設計[M].北京:人民郵電出版社,2005.
[3] 何耀華.云南通史[M].北京:中國社會科學出版社,2011.
[4] 段玉明.南詔大理文化史[M].桂林:廣西師范大學出版社,2018.
[5] 張鎮泰.“打圍”喜洲人的思維體操[J].大理文化,2010(8):82-84.
[6] [美]馬特·弗里斯比.JavaScript高級程序設計(第4版)[M].北京:人民郵電出版社,2020.
[7] 吳吉義,平玲娣,潘雪增,等.云計算:從概念到平臺[J].電信科學, 2009(12):23-30.