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