殷豪 周治宏 田海鵬
摘要:隨著計(jì)算機(jī)的普及,游戲設(shè)計(jì)變得越來(lái)越流行,并已成為當(dāng)今社會(huì)的熱門行業(yè)。因此,為了緩解每個(gè)人的壓力,讓每個(gè)人在工作和學(xué)習(xí)后都有樂(lè)趣,激活大腦,提高工作和學(xué)習(xí)的效率,益智游戲越來(lái)越受到關(guān)注。五子棋作為益智游戲之一,深受人們喜愛。它的規(guī)則簡(jiǎn)單易變。它只能由兩個(gè)人演奏。它非常有趣和有趣。因此,五子棋的發(fā)展也備受關(guān)注。
關(guān)鍵詞:計(jì)算機(jī);五子棋;游戲設(shè)計(jì)
一、問(wèn)題的提出
隨著社會(huì)的發(fā)展和計(jì)算機(jī)的普及,五子棋不僅可以提高思維能力和智力,還可以豐富哲理,有利于修身養(yǎng)性。它是中西文化的交流點(diǎn),是古今哲學(xué)的結(jié)晶。因此,五子棋無(wú)疑成為了一款令人難忘的游戲。
二、任務(wù)與分析
(一)主界面的設(shè)計(jì)與分析
主界面作為程序的交互界面,是整個(gè)程序中相當(dāng)重要的,因此需要注意主界面的美觀性和簡(jiǎn)潔性。這個(gè)程序的運(yùn)行界面提供標(biāo)準(zhǔn)結(jié)構(gòu)的15×15棋盤,黑白棋子由程序繪制。
(二)人機(jī)對(duì)弈的設(shè)計(jì)與分析
(1)設(shè)置選擇游戲模式,程序允許玩家先走或計(jì)算機(jī)先走,計(jì)算機(jī)落子由程序控制,玩家點(diǎn)擊棋盤上的交叉點(diǎn),程序根據(jù)點(diǎn)擊位置確定落子點(diǎn)。雙方輪流行棋,自由開局。
(2)勝負(fù)或和棋完全交由程序判斷。
(3)設(shè)定一個(gè)悔棋功能,為了降低悔棋邏輯的復(fù)雜度,悔棋步數(shù)應(yīng)該有一定的限制。
(4)為了使游戲更加具有生動(dòng)性,需要設(shè)置玩家贏得比賽和輸?shù)舯荣惖囊魳?lè)伴奏,還有落子的音效。
(三)人人對(duì)弈的設(shè)計(jì)與分析
(1)悔棋方式與人機(jī)對(duì)戰(zhàn)不同。需要征得對(duì)方同意才行,如果對(duì)方不同意,則不能悔棋。
(2)玩家的一方可以提出和棋要求,如果另一方玩家表示同意,則和棋,否則,不能和棋,需要繼續(xù)玩下去。
(3)玩家的一方可以提前認(rèn)輸,本棋局結(jié)束。
(4)一局棋結(jié)束后,玩家的一方可以提議再開一局,如果另一方接受,則新棋局開始,否則,不能再次開局,只好等待新的玩家加入。
(5)玩家可以通過(guò)網(wǎng)絡(luò)聊天,互發(fā)文字信息進(jìn)行溝通交流。
三、博弈規(guī)則及公平定義
(一)博弈規(guī)則
二十世紀(jì)初的時(shí)候,五子棋從日本傳到世界各地。五子棋運(yùn)動(dòng)在發(fā)展的過(guò)程中,由于五子棋本身的特點(diǎn)以及其它種種原因,其博弈規(guī)則并不統(tǒng)一,導(dǎo)致目前五子棋博弈有各種不同的規(guī)則。這些規(guī)則的差別總的來(lái)說(shuō)分為三類:
1、職業(yè)比賽和業(yè)余比賽的差別。
2、十五路棋盤和十九路棋盤的差別。
3、先手有禁和無(wú)禁的差別。
目前,五子棋博弈可分為以下五種規(guī)則。這些規(guī)則主要是針對(duì)先手方制定的,因?yàn)楹推渌孱惒煌遄悠宓南仁址接芯薮蟮膬?yōu)勢(shì)。
1、五子棋傳統(tǒng)上使用十九路棋盤,與現(xiàn)在的十五路棋盤相比,十九路的棋給予先手方更多的優(yōu)勢(shì)。
2、禁止"長(zhǎng)連"。在一個(gè)棋局中,如果有超過(guò)五個(gè)的同色相鄰棋子在橫向、縱向或者對(duì)角線方向連接成一條線,稱作"長(zhǎng)連"。禁止"長(zhǎng)連"指的是在博弈過(guò)程中,形成"長(zhǎng)連"并不算獲勝。
3、黑子必須從中央(天元)處走出第一子,白棋第二子必須接著黑棋走。黑方第二子必須落在天元附近。此規(guī)則目的仍是減少黑方優(yōu)勢(shì),但還不夠充分。
4、黑棋在達(dá)到五連以前禁止"三三"、"四四"、以及"長(zhǎng)連"。如果犯規(guī)即判負(fù)。
5、為了進(jìn)一步削弱黑方優(yōu)勢(shì),又引入三手交換以及五手兩打:三手交換指的是黑棋第二步下完之后(也就是總的第三步),白方可以選擇是否和黑棋交換,這個(gè)是為了避免黑棋先手下出黑棋必勝或者大優(yōu)的棋形。
五手兩打指的是黑白各下兩手后,黑棋第三手(總第五手)要下兩個(gè)地方,由白棋選揮留下一個(gè),另外一個(gè)就拿走了,這也是為了減少黑棋優(yōu)勢(shì)過(guò)大而設(shè)置的。上五種規(guī)則其實(shí)都在于限制先手方的優(yōu)勢(shì),這是由五子棋博弈的特點(diǎn)決定的。
(二)公平的定義
定義一:明確的公平性。若已證明出一方必勝,則此游戲可稱為明確不公平。
例如:不帶禁手、黑方無(wú)任何限制的五子棋普通規(guī)則就是明確不公平的。
定義二:?jiǎn)握{(diào)不公平性。若已經(jīng)證明出一方必然不會(huì)必勝,但尚無(wú)法證明另一方必然不會(huì)必勝,則此游戲可稱為單調(diào)不公平。
定義三:經(jīng)驗(yàn)不公平性。若大多數(shù)棋手尤其是專業(yè)棋手經(jīng)過(guò)大量的實(shí)際下棋經(jīng)驗(yàn)認(rèn)定一方必勝或者有極高的勝率,則此游戲可稱為經(jīng)驗(yàn)上不公平。例如早期無(wú)禁手和其它限制黑方優(yōu)勢(shì)的五子棋,基本可認(rèn)定是黑方必勝。
定義四:潛在的不公平性。若該游戲尚未被證明出以上三種不公平性,則可稱為潛在公平。當(dāng)然,一個(gè)游戲當(dāng)前是潛在公平的,不代表它就是公平游戲。如果這個(gè)游戲的潛在公平性保持得越長(zhǎng),可認(rèn)為它越公平。
(三)模塊功能
1、人人對(duì)弈
人人對(duì)弈即是雙人對(duì)戰(zhàn)模式。在本系統(tǒng)中,人人對(duì)弈模式下每次只能一方進(jìn)行,完畢后,才能另一方進(jìn)行。不容許一方兩次下棋,這是游戲規(guī)則所不容許的。對(duì)局雙方各執(zhí)一色棋子??掌灞P開局。執(zhí)黑先、白后,交替下子,每次只能下一子。棋子下在棋盤的空白點(diǎn)上,棋子下定后,不得向其它點(diǎn)移動(dòng),不得從棋盤上拿掉或拿起另落別處。黑方的第一枚棋子可下在棋盤任意交叉點(diǎn)上。
2、人機(jī)對(duì)弈
人機(jī)對(duì)弈即計(jì)算機(jī)與玩家進(jìn)行對(duì)戰(zhàn)。在游戲開始時(shí)由玩家選擇誰(shuí)是先手,選擇好后開始游戲。游戲進(jìn)行時(shí)黑白雙方交替落子,一次只能落一子。棋子下在棋盤的空白點(diǎn)上,棋子下定后,不得向其它點(diǎn)移動(dòng),不得從棋盤上拿掉或拿起另落別處。第一枚棋子可下在棋盤任意交叉點(diǎn)上。
3、下棋過(guò)程
計(jì)算機(jī)下棋與人腦下棋在原理上是一致的。一方面,他在輪詢等待棋局信息,類似于等待裁判指令,如對(duì)方下子、悔棋、對(duì)方認(rèn)輸、結(jié)束比賽等;同時(shí),它在不斷地思考計(jì)算下一步的最佳策略。因此,需要有兩個(gè)線程處理這兩個(gè)同時(shí)進(jìn)行的任務(wù),線程同步及互斥需要內(nèi)核對(duì)象來(lái)協(xié)調(diào)。
4、悔棋流程
悔棋是博弈類游戲中一個(gè)常見的功能。如果對(duì)弈一方發(fā)出悔棋請(qǐng)求,此時(shí)首先應(yīng)暫停計(jì)時(shí)器,進(jìn)行回滾操作。如果AI正在工作狀態(tài),則馬上向其發(fā)出停止信號(hào)。接下來(lái)把棋局狀態(tài)回滾到前一步。如果整個(gè)棋局的落子不超過(guò)二,則退出游戲。否則,重新繪制屏幕,返回到前一步的屏幕狀態(tài)。接下來(lái)更新棋局的實(shí)時(shí)信息。
參考文獻(xiàn)
[1]譚浩強(qiáng).C++程序設(shè)計(jì)(第三版)[M].清華大學(xué)出版社.2004.6.
[2]王小春.PC游戲編程(人機(jī)博弈).重慶:重慶大學(xué)出版社,2002.
作者簡(jiǎn)介:殷豪(1999-),男,漢族,山東青島,本科,研究方向:數(shù)字媒體
周治宏(1999-),男,漢族,四川涼山,本科,研究方向:移動(dòng)互聯(lián)網(wǎng)
田海鵬(2000-),男,漢,四川達(dá)州市,本科,研究方向:數(shù)字媒體