呂橙
(北京建筑大學計算機系,北京100044)
五子棋是全國智力運動會競技項目之一,是一種兩人對弈的純策略型棋類游戲。玩法是游戲雙方分別使用黑白兩色的棋子,下在棋盤直線與橫線的交叉點上,先形成五子連珠者獲勝,雙人模式通常是黑子先手,白子后手。五子棋容易上手,老少皆宜,而且趣味橫生,引人入勝;它不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。五子棋已在各個游戲平臺有應用。
文獻[1]使用Android Studio 為開發工具,開發了一個基于Android 的五子棋游戲。文獻[2]通過電子技術、LabVIEW 技術和投影技術設計投影按鍵顯示五子棋棋盤,真實環境的棋局對弈。文獻[3]用Eclipse 工具和Java 語言實現了五子棋游戲單機版的人人對弈的過程,其中對實現雙方落子的代碼做了詳細的描述。文獻[4]使用MYSQL 數據庫、V-Play 開發框架對五子棋游戲進行了設計與實現,該游戲有三種游戲模式:雙人對戰模式、聯機對戰模式與人機對戰模式,玩家可以根據自己的需要選擇不同的模式進行游戲,并可以和網絡上的其他玩家對弈。文獻[5]利用了HTML5 新增的Canvas 標簽實現了五子棋游戲的開發。
五子棋游戲雙人對決模式常用于學生課設、實驗等實踐環節,本文利用Dev C++軟件實現了五子棋游戲雙人對決模式。
對局雙方各執一色棋子,空棋盤開局,黑先、白后,交替下子,每次只能下一子,棋子下在棋盤的空白點上,棋子下定后,不得向其它點移動,不得從棋盤上拿掉或拿起另落別處。黑方的第一枚棋子可下在棋盤任意交叉點上,無禁手。
游戲功能設計為3 個模塊,主要有:
(1)初始化模塊,主要包括設置初始化參數和繪制棋盤等;
(2)游戲控制模塊,主要包括下子、運行整個對局等;
(3)檢查模塊,主要是輸贏判斷。
五子棋游戲功能如圖1 所示。
游戲可以設置黑棋先手,無禁手,功能設計主要包括設置初始化參數(如設置棋盤尺寸、棋盤初始數據、先手玩家、回合數、加載背景音樂等)和繪制棋盤。

圖1 五子棋游戲雙人對決模式的功能模塊圖
游戲執行過程中,通過鍵盤上(↑)、下(↓)、左(→)、右(←)方向鍵操控鍵盤,通過空格鍵完成落子,當五子連珠時,本局游戲結束,彈出提示對話框。游戲流程如圖2 所示。

圖2 五子棋游戲程序流程圖
游戲過程中,當玩家一方落子后,隨即進行檢查判斷是否五子連珠,如果五子連珠則游戲結束,否則繼續等待移動鼠標或落子。
繪制棋盤核心代碼如下:




該模塊需要進行下子控制,運行整個對局等操作。下子函數:功能是判斷該位置是否有下子。代碼如下:





該模塊的代碼主要是輸贏判斷,分別檢查水平方向、垂直方向、正斜向、反斜向是否五子連珠,核心代碼如下:


游戲實現了五子棋游戲雙人對決模式的基本功能,可以通過操縱“↑”、“↓”、“←”、“→”實現鼠標的上下左右轉動,以及“空格”鍵進行落子,玩家交替落子,運行界面如圖3 所示。
游戲功能還可以進一步完善。例如:
(1)可以設置統計功能,記錄玩家勝負盤數。
(2)可以修改為通過鼠標進行控制移動光標和落子,而非鍵盤“↑”、“↓”、“→”、“←”鍵和空格進行移動光標和落子。
(3)引入AI 算法,修改為人機對決模式。
本文以五子棋游戲為原型,利用DEV C++完成了雙人對決游戲模式的基本運行,包括游戲的初始化設置、游戲控制模塊和檢查模塊,游戲操作簡單,界面效果良好,基本上能夠滿足學生課設要求,提高學生的編程興趣,帶給學生具有挑戰度的游戲類編程體驗。