首页 > 代码库 > Unity3D对弈游戏:狼吃羊游戏
Unity3D对弈游戏:狼吃羊游戏
简介
中文名:狼与羊
英文名称:Wolves&Sheep
游戏类型:休闲/棋类
玩家人数:单人或双人
游戏下载:Windows、Android
游戏描述:童年时与小伙伴常玩的一种游戏,游戏简单易懂而又变化多样。
第一节 游戏规则
棋盘可以用小石头在泥土里上随手就画出来了,棋子中的狼和羊可以用树枝或者小石子代替。
准备
找两块大点的石头当作狼,二十四块小石头是羊,狼和羊必须放置在网格的交叉点上,每个交叉点上最多有一个棋子。
开局
两个狼分别放在上下两个脖子上,羊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):ExperDot.WolfGame
GitHub开源(Unity3D):ExperDot.WolfGame.Unity
注:UI元素风格不统一,作者也很无力啊(づ??????)づ
Unity3D对弈游戏:狼吃羊游戏