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