牌式战棋的算法其实我已经想过一些,奈何本人的编程能力不足最终没有成品出来。

先说说我想过的思路吧。你做的战棋,总会有一份角色的数据组吧。存放血量坐标这些的记录。再加两个数组吧,一个用来表示你的套牌,另一个表示你已经抓上手但还没用出去的牌。然后编一个关于每张牌的解释的模块,这个模块其实是由若个可以单独调用的过程组成。

我具体而简单举个例子,假设牌只有四种,移动,攻击,魔法,道具。牌解释模块就要编四个可以分别调用的过程。这些过程其实你应该已经有了,只是写在程序里的哪个位置我就不清楚了。把它们移到模块吧。给四个过程简单的命名1234,套牌数组和手牌数组就是记录这些1234.当使用手牌时,则调用牌解释模块里对应该的过程。两个牌数组的互动关系注意一下,套牌要能洗牌,手牌抓一张套牌少一张。手牌使用则是手牌直接少一张。可以参考一些扑克游戏的代码。

接着是回合流程的编制。传统战棋每回合可以做的事都是确定的,牌式则不是。但真的不是确定的吗?传统战棋可以选择移动,攻击或者用魔法又或者道具。而这四种事在牌式战棋看来都是同一件事,那就是使用牌。所以牌式战棋的回合流程就是,到这个角色了,每回合补充一张牌。然后决定用哪张牌或哪几个张牌。最好给牌的使用加点限制,省得一回合全用光。比如每张牌都有一个时间消耗值,每回合就象补充牌一样补充一定量的时间值,这回合使用牌的总时间值不能超过这个数。当不用牌了。回合让过。

当回合流程定好后就是AI的设计。这才是真正难点。如果人和人玩的话,不用编AI。游戏只要能按回合流程运行下走就好。如果是人机对战,那就要考虑每个动作的价值,还有几个动作的组合会不会产生价值的变化。

传统战棋,NPC的逻辑是怎样的呢?首先判断谁在攻击范围内,或者移动加攻击范围内。在合条件的选项中再计算打谁的价值最高,因为这些是回合都做的,所以AI可能会做在回合流程里。

牌式战棋不能这样,因为牌式战棋每回合能做什么是由拿着什么牌决定的。有牌才有编AI的价值,不能做的事没必要想。所以牌式战棋的AI应该编在牌解释模块里,有这张牌才调出于这张牌对应的AI。

比如编一段移动牌的AI。首先要看看手牌里有没有攻击牌,有的话才接近对手,没有的话应该逃。

其实还有一种可能,那就是装,你的对手不知道你这张牌是什么,所以不用的话,对手可能以为这是攻击牌而不靠近你。所以角色最后表现出来的行为模式是,能打你就一定过来打你,不能打你则可能逃或者不动。

手里有几张牌就调用几次牌解释模块里的AI,其中最麻烦的是几个动作的组合后,动作的价值产生了变化。还是移动牌的AI,如果手上只有两张移动牌呢?按前面的逻辑,如果有攻击牌的话一定上前打,但两移动牌一张选择逃,另一张选择装。这不是暴露出来另一张肯定不是攻击牌嘛。

AI的设计上还是传统战棋容易,因为确定性高,很多假设性的可能都不用考虑。牌式战棋要为每张牌从新写一份AI,工作量增加一大截。不过话回来,牌式本身就有着极大的随机性,所以有什么动作敢说绝对正确?比如你有攻击牌,于是近身对打,然后接着几回合就是抓不到新的攻击牌,情况从上去打人变成上去被打、、、、这个AI也没法算,因为AI也不知道你下回合会抓什么。

关于AI的想法先着这些吧。数学设计这个说法有点笼统,所以我不太确定你是想讨论AI思路还是直接聊代码应该怎样写,如果是后者的话,你要失望了。因为我已经放弃学编程很多年,电脑也换过,以前写过的东西一点没留。

PS:万智牌要一线大城市才有牌店,我搬家了,从一线搬到三线所以找不到人玩了。而且也是很多年前的事,那时还没多少人网上玩万智牌、、、、后来也戒了。顶多偶尔上网看看关于万智牌的消息。

html5开发战棋游戏,个人耗时三月独立开发的无限流战棋游戏求龙友们给些建议。 ......相关推荐

  1. app软件开发、uniapp、uni-admin使用,独立开发app,相关技术一体化(很完整,小编实践过的一这套uniapp相关技术)

    目录 第一章.app/uniapp项目相关技术 1.1 制作app自定义基座 1.1.1 项目创建 1.1.2 制作手机自定义基座

  2. 安卓打包工具_独立开发之工具篇

    本文介绍下目前开发中所用到的开发工具. 硬件篇: 2014年入手MacPro 小米5 iPhone 6s 两部手机主要用来测试和体验竞品. 目前最大问题就是电脑跟手机的存储空间不足,总需要去删除一些东 ...

  3. android中级开发师必备_【招聘】Android开发工程师 – 中级 – 陌陌

    公司名称: 陌陌 职位薪资: 28.8-40万 招聘人数: 3人 工作年限: 3-5年 学历要求: 本科 (5%) 职位详情 工作地点:中国 北京市 朝阳区 职位描述: 1.参与设计及开发陌陌各类业务 ...

  4. [小白的Web全栈之旅]独立开发电子商务网站--项目介绍

    Web开发,是一个看似简单,实际复杂的工程,需要包括但不限于设计师.前端开发.后端开发的程序员们来开发,而Web全栈开发,是一种carry全场,具备页面设计,前端开发,后端开发等多个技能于一身的大神程 ...

  5. 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(二)

    (接上文)桌面游戏通常创建于一个核心的物理引擎.因此,要在3D世界中模拟一个柔软的物体,需要一个完整的物理模拟器,并且建立一种可信的行为. WebGL和JavaScript还不能奢华到可以运行一个完全 ...

  6. 《游戏脚本的设计与开发》-第一部分总结 文字脚本的功能扩展和一个游戏测试...

    脚本系列文章写了好几篇了,大家可能都不清楚这些脚本有什么用,游戏中如何能应用到这些东西.当然,目前所介绍的内容还只是个简单的开头,说到做游戏还远远不够.不过,本次就使用前几章所介绍的内容,先来尝试一下 ...

  7. 《游戏脚本的设计与开发》-(RPG部分)3.1 RPG地图到底怎么做?

    http://blog.csdn.net/lufy_legend/article/details/17417085 话说好久没有更新博客了,其实这段时间主要是工作忙,没时间.那又是什么刺激了我呢,为什 ...

  8. 《游戏脚本的设计与开发》-第一章总结 文字脚本的功能扩展和一个游戏测试

    脚本系列文章写了好几篇了,大家可能都不清楚这些脚本有什么用,游戏中如何能应用到这些东西.当然,目前所介绍的内容还只是个简单的开头,说到做游戏还远远不够.不过,本次就使用前几章所介绍的内容,先来尝试一下 ...

  9. 《游戏脚本的设计与开发》-目录序

    本系列文章目录 章节 标题 连接 序 游戏脚本简介 http://blog.csdn.net/lufy_legend/article/details/8888787 第一章 基本功能 1.1 读取和解 ...

最新文章

  1. python装饰器改变命运
  2. 观百工堰竹筏竞技比赛有感
  3. 网络安全堪忧 员工上网受限
  4. 在有赞工作两年半的感受
  5. 图数据库并非要取代区块链,而是让区块链如虎添翼
  6. Spring Boot 2.X 使用@Cacheable时注意事项
  7. Ansible批量在远程主机执行命令
  8. green ethernet
  9. Enterprise Vault 10.0.4 FOR Exchange2013 部署之三-日记邮件归档
  10. popen() 函数 讲解
  11. Linux glibc 库的修复方案扯出更严重的新漏洞
  12. 异步处理老司机:IntentService 源码分析
  13. cs231n学习(1)图像分类器:KNN和线性分类器(上)
  14. 苹果手机录屏软件_4款手机录屏软件推荐,你觉得哪款更好用?
  15. [资料分享] 干货~WLAN从入门到精通系列-WLAN技术连载帖汇
  16. MyBatis crud练习
  17. epub文件是什么文件?如何在windows系统上打开?
  18. 基础30讲 第11讲 多元函数微分学
  19. IPEndPoint 和 EndPoint
  20. 局域网内知道Mac地址查询对应IP

热门文章

  1. 输入一个整数,输出每个数字对应的拼音 (c++)
  2. php循环读取excel每个单元格,php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)...
  3. 将简体字转换成繁体字
  4. IOS开发之——QQ主流框架(64)
  5. 以nba球员数据学习聚类算法
  6. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
  7. Gephi安装教程——1
  8. 上海税前12000税后多少_上海工资税前12000到手多少税
  9. 父爱动画代码python_情人节锦囊:简单的python表白程序(动画效果)
  10. C语言情人节玫瑰花代码