说明

  本文涉及的项目源码已失效,有需要请联系作者 E-mail 。(2019 年 1 月注)

简介

  中文名:狼与羊

  英文名称: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):WolfGame.NET (已失效)

  GitHub(Unity3D):WolfGame.Unity(已失效)

转载于:https://www.cnblogs.com/experdot/p/6633754.html

Unity3D对弈游戏:狼吃羊游戏相关推荐

  1. java 实现狼吃羊游戏 (一)

    文章目录 1. 游戏介绍 1.1 棋盘 1.2 行动规则 1.3 胜利规则 1.4 初始摆放位置示例 2. 过程示例 1. 游戏介绍 1.1 棋盘 大小 5 * 5, 所有棋子摆放在格子的顶点上,棋子 ...

  2. html+css+js实现狼吃羊小游戏

    html+css+js实现狼吃羊小游戏 一.总结 一句话总结:给动的元素下标记,这里表现为将要活动的标签动态增加class,这是一种很好的思想. 1.如何实现棋子走动的时候简单精确定位? 用重构坐标系 ...

  3. 【拒绝内卷】狼吃羊的AI奖励机制不合理: 内卷,如何解决?

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 本文转载自:Ai科技评论 作者 | 耳洞打三金 大 ...

  4. python做智能ai的狼吃羊

    在 Python 中,你可以使用各种工具和库来做智能 AI 应用.其中有许多专门用于机器学习和人工智能的库,如 TensorFlow.scikit-learn 和 PyTorch.你可以使用这些库来训 ...

  5. python写一个智能AI的狼吃羊

    首先,您可以使用 Python 编写一个智能 AI 来进行狼吃羊游戏.狼吃羊是一种策略游戏,其中一个玩家控制狼,另一个玩家控制羊.狼的目标是吃掉所有的羊,而羊的目标是避免被吃掉. 首先,您需要为游戏设 ...

  6. 帮我用python写一个智能AI的狼吃羊

    这是一个有趣的游戏!在这里,我向您展示如何用 Python 编写一个智能 AI 的狼吃羊游戏. 首先,我们需要定义一些变量,包括玩家的位置.狼的位置和羊的位置.然后,我们可以使用一些简单的规则来模拟狼 ...

  7. 初学Android,写了一个小时候的游戏《狼吃羊》

    学android不久,在网上看了不少例子,想试着自己写个小游戏,决定写一个小的棋牌类游戏,就是小时候玩的<狼吃羊>, 规则是这样的,一个5 X 5的棋牌,上面有10只小羊2只小狼,狼隔一个 ...

  8. 中秋写了个狼吃羊的智力游戏

    棋子游戏类 狼吃羊(相传起源于北魏) 游戏人数:2人PK 游戏道具,石子,橡皮,粉笔头等块状物质均可 游戏规则:先在地上划出一个5X5的方格,摆放位置如下,狼先走,之后双方轮流走子,每次走一格,狼隔空 ...

  9. 狼吃羊1(依赖关系)

    创建狼类和羊类,包括其访问控制,符合待抽象的问题.模拟抽象狼和羊两种动物,设计抽象出应有的成员变量,如动物的一些生命特征.然后针对狼吃羊这种依赖关系,在狼类里成员函数实现狼吃羊的功能,并根据狼和羊的生 ...

最新文章

  1. c语言既适合于开发,C语言试题及答案 (1)
  2. C/C++多个链接库含有同名函数,编译会报错吗
  3. Windows如何安装MSMQ消息队列
  4. 通过示例休眠–第1部分(删除孤儿)
  5. 一键生成人脸像素图,还能上传到动森!这个项目很好玩
  6. GaussDB(DWS)中共享消息队列实现的三大功能
  7. 选择在共享模式中运行时使用的采样频率和位深度_优化的逻辑(三)干扰相关及扫频仪的使用...
  8. 光伏储能容量优化MATLAB论坛,【推荐】基于需求响应的光伏微网储能系统多目标容量优化配置!...
  9. UITextFiled和UITextView限制字数和输入特殊字符的总结
  10. 学生作业管理系统java源码_基于jsp的学生作业管理-JavaEE实现学生作业管理 - java项目源码...
  11. 简述软件工程研究的主要内容
  12. krpano点击场景获取点击位置的场景坐标
  13. 恒流源驱动电路 随笔一
  14. ORA-01045: user lacks CREATE SESSION privilege
  15. hbase snappy 安装_【hbase-部署】配置snappy压缩
  16. 十三年来,淘宝走过的大数据之路
  17. 最近很火!一名移动互联网员工写给老婆的信
  18. 工业机器人(四)——传感元件制作
  19. 关于《算法(第四版 谢路云译)》标准库In、Out、StdOut和StdIn的正确配置和调用经验分享(以BinarySearch二分查找算法为例)
  20. GitChat · 运维 | 携程运维工作流平台的演进之路

热门文章

  1. python中Path函数讲解【详细】
  2. 学生信息的那些操作:(3)按姓名,查个人
  3. 什么是OPhone?
  4. 2017年第21届德国杜塞尔多夫国际包装机械、包装及糖果机械展览会会刊(参展商名录)
  5. SLAM基础——预积分流程梳理
  6. linux网络ip及其他
  7. Rust机器学习之ndarray
  8. 百度之后阿里也谈小程序“操作系统”,但开放不能只是说说而已
  9. 脑袋里是什么?HTML中的元数据
  10. 根据标签进行群发php,根据标签进行群发