呂橙
(北京建筑大學(xué)計(jì)算機(jī)系,北京100044)
五子棋是全國(guó)智力運(yùn)動(dòng)會(huì)競(jìng)技項(xiàng)目之一,是一種兩人對(duì)弈的純策略型棋類游戲。玩法是游戲雙方分別使用黑白兩色的棋子,下在棋盤直線與橫線的交叉點(diǎn)上,先形成五子連珠者獲勝,雙人模式通常是黑子先手,白子后手。五子棋容易上手,老少皆宜,而且趣味橫生,引人入勝;它不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋已在各個(gè)游戲平臺(tái)有應(yīng)用。
文獻(xiàn)[1]使用Android Studio 為開發(fā)工具,開發(fā)了一個(gè)基于Android 的五子棋游戲。文獻(xiàn)[2]通過電子技術(shù)、LabVIEW 技術(shù)和投影技術(shù)設(shè)計(jì)投影按鍵顯示五子棋棋盤,真實(shí)環(huán)境的棋局對(duì)弈。文獻(xiàn)[3]用Eclipse 工具和Java 語言實(shí)現(xiàn)了五子棋游戲單機(jī)版的人人對(duì)弈的過程,其中對(duì)實(shí)現(xiàn)雙方落子的代碼做了詳細(xì)的描述。文獻(xiàn)[4]使用MYSQL 數(shù)據(jù)庫(kù)、V-Play 開發(fā)框架對(duì)五子棋游戲進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn),該游戲有三種游戲模式:雙人對(duì)戰(zhàn)模式、聯(lián)機(jī)對(duì)戰(zhàn)模式與人機(jī)對(duì)戰(zhàn)模式,玩家可以根據(jù)自己的需要選擇不同的模式進(jìn)行游戲,并可以和網(wǎng)絡(luò)上的其他玩家對(duì)弈。文獻(xiàn)[5]利用了HTML5 新增的Canvas 標(biāo)簽實(shí)現(xiàn)了五子棋游戲的開發(fā)。
五子棋游戲雙人對(duì)決模式常用于學(xué)生課設(shè)、實(shí)驗(yàn)等實(shí)踐環(huán)節(jié),本文利用Dev C++軟件實(shí)現(xiàn)了五子棋游戲雙人對(duì)決模式。
對(duì)局雙方各執(zhí)一色棋子,空棋盤開局,黑先、白后,交替下子,每次只能下一子,棋子下在棋盤的空白點(diǎn)上,棋子下定后,不得向其它點(diǎn)移動(dòng),不得從棋盤上拿掉或拿起另落別處。黑方的第一枚棋子可下在棋盤任意交叉點(diǎn)上,無禁手。
游戲功能設(shè)計(jì)為3 個(gè)模塊,主要有:
(1)初始化模塊,主要包括設(shè)置初始化參數(shù)和繪制棋盤等;
(2)游戲控制模塊,主要包括下子、運(yùn)行整個(gè)對(duì)局等;
(3)檢查模塊,主要是輸贏判斷。
五子棋游戲功能如圖1 所示。
游戲可以設(shè)置黑棋先手,無禁手,功能設(shè)計(jì)主要包括設(shè)置初始化參數(shù)(如設(shè)置棋盤尺寸、棋盤初始數(shù)據(jù)、先手玩家、回合數(shù)、加載背景音樂等)和繪制棋盤。
圖1 五子棋游戲雙人對(duì)決模式的功能模塊圖
游戲執(zhí)行過程中,通過鍵盤上(↑)、下(↓)、左(→)、右(←)方向鍵操控鍵盤,通過空格鍵完成落子,當(dāng)五子連珠時(shí),本局游戲結(jié)束,彈出提示對(duì)話框。游戲流程如圖2 所示。
圖2 五子棋游戲程序流程圖
游戲過程中,當(dāng)玩家一方落子后,隨即進(jìn)行檢查判斷是否五子連珠,如果五子連珠則游戲結(jié)束,否則繼續(xù)等待移動(dòng)鼠標(biāo)或落子。
繪制棋盤核心代碼如下:
該模塊需要進(jìn)行下子控制,運(yùn)行整個(gè)對(duì)局等操作。下子函數(shù):功能是判斷該位置是否有下子。代碼如下:
該模塊的代碼主要是輸贏判斷,分別檢查水平方向、垂直方向、正斜向、反斜向是否五子連珠,核心代碼如下:
游戲?qū)崿F(xiàn)了五子棋游戲雙人對(duì)決模式的基本功能,可以通過操縱“↑”、“↓”、“←”、“→”實(shí)現(xiàn)鼠標(biāo)的上下左右轉(zhuǎn)動(dòng),以及“空格”鍵進(jìn)行落子,玩家交替落子,運(yùn)行界面如圖3 所示。
游戲功能還可以進(jìn)一步完善。例如:
(1)可以設(shè)置統(tǒng)計(jì)功能,記錄玩家勝負(fù)盤數(shù)。
(2)可以修改為通過鼠標(biāo)進(jìn)行控制移動(dòng)光標(biāo)和落子,而非鍵盤“↑”、“↓”、“→”、“←”鍵和空格進(jìn)行移動(dòng)光標(biāo)和落子。
(3)引入AI 算法,修改為人機(jī)對(duì)決模式。
本文以五子棋游戲?yàn)樵停肈EV C++完成了雙人對(duì)決游戲模式的基本運(yùn)行,包括游戲的初始化設(shè)置、游戲控制模塊和檢查模塊,游戲操作簡(jiǎn)單,界面效果良好,基本上能夠滿足學(xué)生課設(shè)要求,提高學(xué)生的編程興趣,帶給學(xué)生具有挑戰(zhàn)度的游戲類編程體驗(yàn)。