社区
游戏开发
帖子详情
问一个游戏算法的问题
TechnoFantasy
2006-12-23 05:51:03
在很多即时战略游戏或者FPS游戏中处于不同地方的敌方角色会绕过障碍向玩家靠拢并,占领有利地形 攻击玩家。请问这样的功能有什么算法可以实现呢?能给出相关文章或者代码则不胜感激。
...全文
305
4
打赏
收藏
问一个游戏算法的问题
在很多即时战略游戏或者FPS游戏中处于不同地方的敌方角色会绕过障碍向玩家靠拢并,占领有利地形 攻击玩家。请问这样的功能有什么算法可以实现呢?能给出相关文章或者代码则不胜感激。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
寻开心
2006-12-29
打赏
举报
回复
实际上是两个功能
一个是寻路,绕过障碍接近目标,方法很多,常见的是用a*寻路的算法
一个是队形的问题,这个同样有很多办法,楼上的也是一种
至于占据有利地形,则是根据目标点周围的不同情况动态设置寻路的目标
赖勇浩
2006-12-23
打赏
举报
回复
一般称为团队人工智能,实现上是很简单的东西。给每一类的角色(弓手、骑士等)指定一个领队,领队里有一个状态机,当领队发现敌人时,状态机的行动反馈是进攻(假设),并且领队计算出某一位置是有利于进攻的,领队给所有其它角色发出命令向这一有利位置行进,其它角色就过去了~
当然,领队也可以给出比较复杂的策略,比如一个小分队去左侧一个小分队去右侧,中间集中火力进攻~这就要看你的需要了~
TechnoFantasy
2006-12-23
打赏
举报
回复
谢谢楼上。我现在想了解一下具体应该使用哪个或者哪类算法?给一个算法的名字就可以,我自己研究。
赖勇浩
2006-12-23
打赏
举报
回复
建议看一下AI for game developers
算法
-跳跃
游戏
问
题
合集
算法
-跳跃
游戏
II跳跃
游戏
II 跳跃
游戏
II 跳跃
游戏
II也是Leetcode上一道经典的题目,难度为hard,其实可以暴力求解,思路是使用两个指针,第
一个
指针指向初始位置,第二个指针指向i+nums[i]位置,在两个指针间的窗口中,选择
一个
nums[k]+k最大的值作为要跳跃的位置。时间复杂度是O(N),很符合我们的直观。 不过我们采用另一种O(N)的
算法
来解决这个
问
题
public int j......
三消
游戏
算法
剖析
此篇文章为本人学习所搜集的资料,如有错误还请各位大神们多多指点! 三消
游戏
的核心
算法
——递归
算法
。 递归
算法
: 是一种直接或者间接地调用自身的
算法
。在计算机编写程序中,递归
算法
对解决一大类
问
题
是十分有效的,它往往使
算法
的描述简洁而且易于理解。递归过程一般通过函数或子过程来实现。递归
算法
的实质:是把
问
题
转化为规模缩小了的同类
问
题
的子
问
题
。然后递归调用函数(或过程)来表示
问
题
的解。递归
算法
解决
问
题
游戏
开发中常用的
算法
内容会持续更新,有错误的地方欢迎指正,谢谢! 1.与数组相关的
算法
: 快速排序(分治思想的应用):不是任何情况都适用,数据量小的话,还不如冒泡快,但快排的确很优秀。 堆排序:可用于做
游戏
排行榜前多少多少名,根据求最大的K个数还是最小的K个数来建最大堆和最小堆,再将最大/小堆的根节点和最后
一个
子叶节点交换,最后调整堆,重复刚才那两个步骤,直到得到K个数。当然,这种题也可以用红黑树实现的set来...
拼图
游戏
(搜索
算法
)
先构造
一个
优先队列,然后从空白格周围开始搜索,从上下左右四个方向找到可交换的位置,进行交换,然后把交换之后的状态放入优先队列中,从队列中取出队头元素,得到新的状态,将该状态与目标状态进行比较,若一样,则结束并返回此时交换次数,若不同,重复以上步骤,继续进行搜索。这是
一个
八数码
问
题
,在
一个
3*3的棋盘上,随机放置0-8的数字,去掉
一个
数字,出现空位,用-1来填补,数字可以移动到空位,经过若干次移动后,可以实现指定目标。请给出使用优先队列搜索
算法
求解拼图
游戏
的【
问
题
分析】和【
算法
伪代码】。
[
算法
分析与设计]拼图
问
题
或八数码
问
题
(搜索
算法
)
[
问
题
分析]: 拼图
游戏
实际上是八数码
问
题
的小变形或者说其实就是八数码
问
题
,针对八数码
问
题
我们有三种搜索
算法
,分别是宽度优先搜索
算法
,深度优先搜索
算法
,启发式搜索
算法
A*。在解决路径类
问
题
(即在
一个
二维网格中,求从某一点移动到另外一点的最短路径)中,他们大体的思路都是一致的: 我们创建OPEN表放置待访
问
的结点,CLOSE表放置已经访
问
过的结点。 从初始结点开始,将初始节点的上下左右四个节点放入OPEN表,然后将初始结点放入CLOSE表,然后从OPEN表中取出
一个
节点,将其上下左右四个...
游戏开发
8,325
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章