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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity战棋游戏源码是一个用Unity引擎制作的战棋游戏的程序代码。战棋游戏是一种策略类游戏,玩家可以控制虚拟角色在棋盘上进行战斗和策略决策。 该源码可能包含以下功能: 1. 战斗系统:具备基本的攻击、防御和回合制战斗机制。玩家可以选择不同的角色,每个角色都有独特的技能和属性。在回合制中,玩家可以选择移动、攻击或使用技能来消灭敌人。 2. 地图编辑器:玩家可以使用地图编辑器创建自己的游戏地图。地图编辑器允许玩家在创建地形、放置建筑物和障碍物等方面进行自定义。 3. 单人模式和多人模式:玩家可以选择单人模式与电脑对战,也可以选择多人模式与其他玩家进行实时对战。 4. AI系统:游戏可能会包含一个AI系统,使电脑角色能够自动进行决策和行动。AI系统可能根据玩家的行为和游戏规则来进行智能决策。 5. 游戏进度和存档:游戏可能有一个进度和存档系统,玩家可以保存和加载游戏进度,以便在需要时继续游戏。 总的来说,Unity战棋游戏源码提供了一个基础的战棋游戏框架,玩家可以通过自定义和扩展代码来创建自己的战棋游戏。这个源码可以帮助开发者学习和理解战棋游戏的设计和实现,为他们创作属于自己的战棋游戏提供了有力的支持。 ### 回答2: Unity战棋游戏源码是一种可以用于构建战棋游戏的程序代码。Unity是一款非常流行的游戏引擎,它提供了强大的开发工具和功能,可以帮助开发者快速构建高质量的游戏战棋游戏是一种策略类型的游戏,玩家根据自己的决策和策略来战胜敌对玩家或者电脑AI。 在Unity战棋游戏源码中,通常包含了游戏的主要逻辑,如游戏角色的移动、攻击、技能、状态转换等。此外,还会涵盖游戏场景的构建、动画和特效的制作、战斗系统的设计等方面。 使用Unity战棋游戏源码,开发者可以节省大量的开发时间和精力。源码提供了一个已经搭建好的框架和基础代码,使得开发者可以专注于游戏的核心玩法和美术资源的制作。同时,开发者可以根据自己的需求对源码进行修改和定制,以便创建出自己独特的战棋游戏。 总之,Unity战棋游戏源码是一种开发工具,可以帮助开发者快速构建战棋游戏。它提供了一个已经搭建好的框架和基础代码,使开发者可以专注于游戏的核心玩法和美术资源的制作,为玩家带来高质量的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值