簡介
中文名:狼與羊
英文名稱:Wolves&Sheep
游戲類型:休閑/棋類
玩家人數:單人或雙人
游戲描述:童年時與小伙伴常玩的一種游戲,游戲簡單易懂而又變化多樣。
第一節 游戲規則
棋盤可以用小石頭在泥土里上隨手就畫出來了,棋子中的狼和羊可以用樹枝或者小石子代替。
准備
找兩塊大點的石頭當作狼,二十四塊小石頭是羊
狼和羊必須放置在網格的交叉點上
每個交叉點上最多有一個棋子
開局
兩個狼分別放在上下兩個脖子上,羊 8 個放在中間一圈的交叉點上,狼先走羊后走交替進行
狼跳過羊就把羊吃掉了,狼只能沿圖上的直線跳且只能跳過一個點,不吃羊則只能走一格
羊是先放不能走,每次放一只,羊全部放完才能走,也是每次走一格
勝負
如果狼沒地方可走了,羊贏得比賽
狼把羊吃光或羊認輸,狼贏得比賽
圖1-1 開局
第二節 程序設計
涉及本游戲核心邏輯的類庫最先在 WPF 平台上完成編碼和測試。
基礎功能
棋盤表示:使用合適的數據結構表示棋盤
移動判斷:檢測用戶走棋是否符合移動規則
用戶視圖:視圖顯示棋盤和檢測用戶的輸入
對弈模式
人人對弈:支持雙人輪流下棋
人機對弈:機器人難度級別可選
對弈功能
提示:由AI給出走棋提示
悔棋:可返回上一步局面
終止:立即終止比賽
圖2-1 終止比賽
第三節 AI算法
AI 搜索算法借鑒中國象棋中成熟的深度優先搜索算法。
搜索算法
Alpha-Beta 剪枝
局面生成
基於規則逐步產生
局面評估
棋子基礎子力:每個棋子具有一個基礎價值
棋子位置估值:評估棋子在不同位置的價值
棋子關系估值:評估棋子間相互作用關系,例如對較多羊造成威脅的狼的價值較高
圖3-1 搜索算法調試輸出
第四節 Unity3D
使用 VisualStudio 開發的游戲核心邏輯類庫可以編譯為 DLL 文件,然后在 Unity3D 項目里引用它。
如何引用 .NET 類庫
項目屬性->應用程序->目標框架,下拉列表中選擇 .NET Framework 3.5
成功編譯后將輸出目錄下的文件全部復制到 Unity 項目的 Assets\Plugins 文件夾
Unity3D 將自動完成導入,最后,在 C# 腳本中導入上述類庫項目的命名空間即可
若是 VB.NET 項目,需要手動編輯 .vbproj 文件以開啟 VBRuntime Embed 編譯模式
<PropertyGroup> <VBRuntime>Embed</VBRuntime> </PropertyGroup>
通用的游戲腳本
背景音樂:切換場景仍能夠連續播放的音樂 點擊查看代碼
元素縮放:支持用戶在游戲內縮放UI元素 點擊查看代碼
雙人聯機:支持局域網創建游戲房間進行聯機游戲 點擊查看代碼
圖4-1 外部類庫項目屬性
附錄
象棋百科全書:計算機博弈
GitHub(WPF):WolfGame.NET
GitHub(Unity3D):WolfGame.Unity