昆明捷成斌文化傳播有限公司 王嘉秀楠
圍簽是一種流行于云南省大理白族自治州部分地區(qū)的傳統(tǒng)概率型游戲。大理作為云南省的歷史文化名城,根據(jù)有關資料記載:早在公元7世紀中葉洱海流域就已繁衍出了強大的地方民族部落[1]。在地方傳說里到了南詔、大理國時期圍簽已經(jīng)出現(xiàn)并流行開來。此游戲以“圍獵”為原型,是白族人民集體創(chuàng)造的智慧結(jié)晶,游戲中蘊含著的豐富數(shù)學知識無疑是白族民眾日常生活中最好的“思維訓練器”。而隨著科技的進步,人民生活條件的不斷提高,一直以來在民間埋沒的圍簽必須順應時代的發(fā)展,從現(xiàn)實走向虛擬,才能得到普及和廣泛的認可。因此,筆者設計了一款圍簽電子網(wǎng)絡游戲,且敘述了圍簽的游戲基本規(guī)則和發(fā)展歷史,以及該游戲的開發(fā)設計基本過程和實現(xiàn)方法。主要實現(xiàn)如:開始游戲、扔骰子、輸贏計算等功能。
在科技日新月異,全球化的大背景下,人們生產(chǎn)生活不斷提高,娛樂活動也越加豐富,而一些如圍簽一樣的傳統(tǒng)游戲已經(jīng)陷入失傳的風險當中。因此圍簽需要發(fā)展和進步,通過JavaScript的基本編程方法[2]和互聯(lián)網(wǎng)等新興技術相結(jié)合則可以實現(xiàn)跨平臺游玩,增加趣味性,這樣才能被廣泛認知和走向國際。
圍簽屬于白族民間的一種傳統(tǒng)概率型游戲,有著較為悠久的歷史以及文化底蘊。圍簽的發(fā)源地大理作為我國西南重要的文化中心,素來就有“文獻名邦”的美譽。在公元7世紀下半葉大理一帶的社會經(jīng)濟取得了較大的發(fā)展,出現(xiàn)了一些具有特殊性質(zhì)的城邑聚落[3]。到了公元8世紀在蒙舍詔首領皮邏閣的帶動下建立起了南詔國[4],而大理一帶則成為了南詔國重要的政治、經(jīng)濟、文化中心。由于南詔國地處我國西南古代的重要經(jīng)商要道之上,可以說是通往東南亞的咽喉要道,所以其商貿(mào)頗為發(fā)達,而圍簽這樣的概率型游戲則成為了最好的“數(shù)學課本”。圍簽中蘊含著我國傳統(tǒng)的數(shù)學知識,比如其中的支數(shù)和柱數(shù)就是根據(jù)《易經(jīng)》像數(shù)原理設計的。又因為這種游戲以少數(shù)民族地區(qū)流行的圍獵活動為基礎,生動形象,可謂是從老至少人人皆愛。到了公元10-11世紀,由于大理國采取一系列重視國家經(jīng)濟的舉措,人民安居樂業(yè),圍簽也成為了一種廣泛流行的游戲。明代時隨著云南一帶商幫的發(fā)展圍簽又成為了民間最好的“思維訓練器”,并且逐步演變成了一種傳統(tǒng)文化,每逢春節(jié)的時候白族民眾都喜愛聚在一起游玩。圍簽作為一種融吉慶、歡樂、休閑、數(shù)學等因素為一體的游戲,擁有非常豐富的文化內(nèi)涵,是白族先民把人和自然關聯(lián)的創(chuàng)造性民俗活動,可以說它極具價值。但隨著時代的發(fā)展,人民娛樂生活得越加豐富,圍簽這種游戲就開始顯得有那么一些跟不上時代了,游玩的人數(shù)越來越少甚至已經(jīng)陷入失傳的風險之中。不過幸運的是隨著互聯(lián)網(wǎng)技術的發(fā)展,我們可以通過技術手段,把這種游戲從現(xiàn)實搬入到虛擬世界中,向更多人普及和推廣這種即將失傳的民族游戲。
圍簽牌一般由竹子制成,總共有134支牌簽,并分別設有十種動物,每種動物代表不同柱數(shù)。分別為:老獅子1支,代表64柱;老虎2支,每支代表32柱;豹子4支,每支代表16柱;順1支,代表16柱;狗2支,每支代表12柱;鷹4支,每支代表10柱;馬鹿8支,每支代表8柱;獐子16支,每支代表4柱;兔子32支,每支代表2柱;小雞64支,每支代表1柱;總共為528柱。
游玩大概在2-10人左右,并準備6顆骰子用于擲于大碗中看點數(shù),6顆骰子組合出的不同點數(shù)代表可得到不同動物。首先誰擲出的單個骰子點數(shù)大誰就是開局者;其次游戲分為正擲和分擲兩個過程。正擲時擲出不同的點數(shù)組合代表該玩家獲得不同的動物簽,例如:擲出1顆紅4點可獲得一支小雞簽;擲出2顆紅4點可獲得一支小兔簽;擲出4顆幺點可獲得一支狗簽等。要想獲得柱數(shù)多的猛獸,6顆骰子的組合就越復雜,得到的概率也就越低。
當游戲中獲得概率高的小雞和兔子全部被玩家分完,如還剩下其他動物簽未分完時則進入分擲階段,此階段則通過放寬條件獲得動物簽。如:原本需要擲出3顆4點,或者2顆4點的同時有兩對不同點黑面的就可得一支馬鹿簽,而在分擲階段只需擲出2顆4點即可再擲一次,第二次中有1顆4點就可得馬鹿簽。但需要注意的是,第二次擲時若出現(xiàn)其他動物簽,甚至是大型猛獸簽都是不算數(shù)的。
桌面上所有的牌簽分完以后,計算每個人所得的柱數(shù),柱數(shù)最多者即為贏家,并可成為下一局的開局者。
同時有以下特殊情況:如有擲出6顆紅4點的玩家可獲得桌面上所有牌簽,包括別人已獲得的牌簽,并且獲得勝利。若擲出6顆同點黑面的骰子則桌面上剩余的所有牌簽都歸擲出者。在分獅子時擲出123456的順色面按照規(guī)則可再擲一次,再擲一次后又擲出順色面則按照擲出6顆紅4點處理[5]。
需要注意的是以上規(guī)則只是較為流行的一種規(guī)則,在一些地區(qū)可能略有差異,但大體而言都不會偏離太多。此游戲設計也將會按照以上規(guī)則進行。
軟件的總體設計結(jié)構(gòu),如圖1所示。
圖1 游戲設計結(jié)構(gòu)圖Fig.1 Game design structure diagram
進入主界面后玩家可以選擇單人模式、多人模式、網(wǎng)絡對戰(zhàn)三個模式。
單人模式下將會提供1-10個AI和玩家對戰(zhàn)并輪流擲骰子。
多人模式最多可以提供10個空位。有2人即可開始游戲。開始游戲后玩家通過同一設備進行對戰(zhàn)。
網(wǎng)絡對戰(zhàn)則依托于云服務器技術,開始后在30s內(nèi)匹配1-10個在線玩家,匹配過程中使用計數(shù)器并開始倒計時,倒計時有動畫以及數(shù)字提示以減少玩家等待過程中的乏味,當成功匹配到玩家時就可開始對戰(zhàn),對戰(zhàn)結(jié)束后則將玩家游玩的結(jié)果記錄至數(shù)據(jù)庫當中。
游戲模式選擇以及游戲主界面的背景則使用JS動畫進行模擬以增加整體美觀度。同時還可由玩家自由選擇開關游戲背景音樂,使得游戲更加豐富多彩。
游戲開始后可以通過基本的parseInt(Math.random()×(6-1+1)+1,10);來模擬骰子點數(shù)[6],按照玩家或者AI擲出數(shù)字大小確定游戲中后續(xù)階段擲骰子的順序,具體排序方法為創(chuàng)建一個函數(shù),負責對玩家擲出骰子的數(shù)據(jù)進行冒泡排序并將結(jié)果返回,擲出點數(shù)越大的玩家或者AI則在游戲后續(xù)階段中越先擲骰子,此后每一輪都按照該順序來擲出骰子,直到游戲結(jié)束。在出現(xiàn)相同點數(shù)的情況下則由計算機通過隨機數(shù)方法在后臺模擬出1-10范圍內(nèi)的隨機數(shù),如果數(shù)值在1-5范圍內(nèi)則優(yōu)先擲骰子,這樣就可以保證玩家在擲出相同點數(shù)時有50%的概率拿到優(yōu)先權。其中擲骰子等過程則是通過簡單的JS動畫來進行實現(xiàn),這樣就可以更多地增加游戲趣味性。
3.2.1 正擲階段
此階段中按照圍簽正擲階段規(guī)則進行,可以通過隨機數(shù)模擬骰子點數(shù)。如擲出與動物相對應的點數(shù)則該玩家或者AI獲得的柱數(shù)增加,實現(xiàn)過程則采用邏輯判斷,例如當玩家或者AI擲出一顆紅4點時就可和所有紅4點可得的條件進行判斷,如無法和所有大于1柱的動物條件相匹配則獲得一支小雞簽。獲得動物畫面則使用語音提示以及動畫效果增強游戲互動性。如果玩家沒有達到任何獲得動物簽的條件,則用文字以及語音提示“落空了”。
3.2.2 分擲階段
當判斷場上無任何小雞以及兔簽時則進入此階段,此階段中按照分擲規(guī)則進行,如擲出對應點數(shù)則該玩家或者AI可以獲得柱數(shù)增加。進入該階段時擁有語音以及文字提示,用以提醒玩家注意游戲階段的改變,進入后則在后臺調(diào)用相關的分擲規(guī)則函數(shù)。分擲階段對于獲得動物簽的基本判定原理和正擲階段類似,但多增加一個條件判斷語句用以檢驗玩家或者AI是否可以再擲一次。例如玩家或者AI擲出2顆4點時則對全場提示該玩家和AI可以再擲一次。獲得動物和落空時采用和正擲階段相同的動畫進行提示。
3.2.3 特殊情況
在玩家或者AI擲骰子的過程中,都對是否擲出特殊情況進行優(yōu)先的邏輯判斷,如擲出上文中所描述的特殊情況則按照上文規(guī)則決定柱數(shù)增加或者減少,以及勝負,為了保證游玩體驗在單人模式下如出現(xiàn)影響勝負的特殊情況則玩家可以選擇撤回并重新擲一次。
在游戲界面右上角將會給玩家提供中途退出的按鈕,玩家點擊后將會用調(diào)用一個警告框來提示玩家是否確認退出游戲,這樣可以最大限度地防止玩家在游戲過程中因為誤觸而退出游戲。如果玩家點擊確認即可退出游戲。單人模式或者多人模式退出后不計算勝負。網(wǎng)絡對戰(zhàn)中如果超過1min未擲骰子則按照中途退出處理。網(wǎng)絡對戰(zhàn)中如果中途退出,則算失敗,并且擁有的所有柱數(shù)返還至場上,參與人數(shù)進行減一處理。
勝負結(jié)算時則按照傳統(tǒng)規(guī)則即十個玩家或者九個AI一個人的情況下超過53柱則為勝利;九個玩家或者八個AI一個人的情況下超過59柱則為勝利;八個玩家或者七個AI一個人的情況下超過66柱則為勝利;七個玩家或者六個AI一個人的情況下超過75柱則為勝利;六個玩家或者五個AI一個人的情況下超過88柱則為勝利;五個玩家或者四個AI一個人的情況下超過105柱則為勝利;四個玩家或者三個AI一個人的情況下超過132柱則為勝利;三個玩家或者二個AI一個人的情況下超過176柱則為勝利;二個玩家或者一個AI一個人的情況下超過264柱則為勝利;未達到以上條件者則算失敗。游戲結(jié)束后通過獲取每個玩家柱數(shù)進行從大到小的排名,讓玩家獲得更好的競爭體驗。如果出現(xiàn)特殊情況則按照3.2.3中提到的特殊情況處理。
在網(wǎng)絡對戰(zhàn)模式下得益于現(xiàn)在云計算以及云服務器這樣的多重分布式計算資源進行協(xié)同工作的全新互聯(lián)網(wǎng)模式[7],游戲可將玩家勝利或者失敗記錄以及總的游玩數(shù)記錄在云數(shù)據(jù)庫當中,并且將玩家的勝利數(shù)和總游玩數(shù)相除從而得到玩家的勝率,這樣的措施可以激起玩家對游戲的興趣,最大程度留住玩家。
圍簽作為我國傳統(tǒng)民族文化的一部分,需要積極保護和傳承并且提高普及度。在娛樂生活越來越豐富的今天,包括圍簽在內(nèi)的諸多傳統(tǒng)游戲已經(jīng)逐漸跟不上時代的步伐,因此創(chuàng)新才是唯一的出路。但和諸多地方民族傳統(tǒng)運動以及游戲一樣,圍簽不可局限于少數(shù)地區(qū)乃至一個民族的內(nèi)部。因此圍簽需要放眼全國乃至全球,以吸引更多的人前來感受我國傳統(tǒng)民族文化的奧妙和精髓。同時在發(fā)展過程中應當順應時代的潮流,符合時代發(fā)展規(guī)律,遵循時代特色精神,使得其更具有獨特民族的風格,并在豐富人民群眾精神和文化生活的同時促進民族團結(jié)和民族地區(qū)旅游業(yè)以及社會經(jīng)濟、文化、藝術的發(fā)展,以便更好地建設和宣傳我國的傳統(tǒng)民族文化。
引用
[1] 梁曉強.南詔史[M].北京:中國社會科學出版社,2013.
[2] 吳以欣,陳小寧.JavaScript腳本程序設計[M].北京:人民郵電出版社,2005.
[3] 何耀華.云南通史[M].北京:中國社會科學出版社,2011.
[4] 段玉明.南詔大理文化史[M].桂林:廣西師范大學出版社,2018.
[5] 張鎮(zhèn)泰.“打圍”喜洲人的思維體操[J].大理文化,2010(8):82-84.
[6] [美]馬特·弗里斯比.JavaScript高級程序設計(第4版)[M].北京:人民郵電出版社,2020.
[7] 吳吉義,平玲娣,潘雪增,等.云計算:從概念到平臺[J].電信科學, 2009(12):23-30.