中文名:狼與羊git
英文名稱:Wolves&Sheepgithub
遊戲類型:休閒/棋類算法
玩家人數:單人或雙人數據結構
遊戲描述:童年時與小夥伴常玩的一種遊戲,遊戲簡單易懂而又變化多樣。測試
棋盤能夠用小石頭在泥土裏上隨手就畫出來了,棋子中的狼和羊能夠用樹枝或者小石子代替。編碼
準備spa
找兩塊大點的石頭看成狼,二十四塊小石頭是羊設計
狼和羊必須放置在網格的交叉點上3d
每一個交叉點上最多有一個棋子
開局
兩個狼分別放在上下兩個脖子上,羊 8 個放在中間一圈的交叉點上,狼先走羊後走交替進行
狼跳過羊就把羊吃掉了,狼只能沿圖上的直線跳且只能跳過一個點,不吃羊則只能走一格
羊是先放不能走,每次放一隻,羊所有放完才能走,也是每次走一格
勝負
若是狼沒地方可走了,羊贏得比賽
狼把羊吃光或羊認輸,狼贏得比賽
圖1-1 開局
涉及本遊戲核心邏輯的類庫最早在 WPF 平臺上完成編碼和測試。
基礎功能
棋盤表示:使用合適的數據結構表示棋盤
移動判斷:檢測用戶走棋是否符合移動規則
用戶視圖:視圖顯示棋盤和檢測用戶的輸入
對弈模式
人人對弈:支持雙人輪流下棋
人機對弈:機器人難度級別可選
對弈功能
提示:由AI給出走棋提示
悔棋:可返回上一步局面
終止:當即終止比賽
圖2-1 終止比賽
AI 搜索算法借鑑中國象棋中成熟的深度優先搜索算法。
搜索算法
Alpha-Beta 剪枝
局面生成
基於規則逐步產生
局面評估
棋子基礎子力:每一個棋子具備一個基礎價值
棋子位置估值:評估棋子在不一樣位置的價值
棋子關係估值:評估棋子間相互做用關係,例如對較多羊形成威脅的狼的價值較高
圖3-1 搜索算法調試輸出
使用 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