Project1

标题: 承接各种算法类脚本。 [打印本页]

作者: 美兽    时间: 2008-6-20 18:12
标题: 承接各种算法类脚本。
面向对象:纯粹的算法类脚本,数学类优先,

例如:
1:
http://rpg.blue/viewthread.php?t ... D6%2D20+9%3A56%3A15
2:
http://rpg.blue/viewthread.php?t ... D6%2D20+9%3A56%3A15

条件较为苛刻,请仔细阅读,如若申请,表示无条件服从此规则。

一:因纯粹为调剂学习压力用,若无把握一小时内完成,不接。
二:只提供纯粹的数据运行核心算法,其他附加条件不接。
三:收费较高,约5-20论坛货币(1论坛货币 =1000积分 =1VIP =4好人卡),不含税,与你富有程度成正比。
四:因无RM,不能进行测试,请申请者自己验证运行可能,我负责纠错。
五:一经完成,不做售后服务。
六:算法版权归在下,在下有权转载与发布,申请者购买的仅是使用权。
七:禁止谩骂、侮辱、中伤,在下仅图个消遣。


欢迎咨询,不定期解答。

作者: 小传子    时间: 2008-6-20 18:34
这是一家有水平的黑店{/hx}
对数学感到头疼= =|||
作者: dbshy    时间: 2008-6-20 20:49
纯粹为调剂学习压力用....

很好奇LZ到底学什么....

PS:LZ去看一下NOI,IOI ,ACM吧,应该适合你的水平
作者: 莫浪语    时间: 2008-6-20 22:12
美首还是搞搞ai吧,最好是及插即用的{/dy}
作者: yangff    时间: 2008-6-20 23:28
刷绿~~
作者: 雷欧纳德    时间: 2008-6-21 00:34
C++算法接不?
作者: orochi2k    时间: 2008-6-21 02:30
那个...有证明1+1的东东么- -0
作者: yangff    时间: 2008-6-21 02:45
解释一下A*算法
作者: 泪鱼    时间: 2008-6-21 04:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: 泪鱼    时间: 2008-6-21 04:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-6-21 07:15
要不给做个能打败 深蓝 的算法
作者: link006007    时间: 2008-6-21 07:19
感觉上选择适合的算法比写算法难得多
作者: 雷欧纳德    时间: 2008-6-22 05:23
不知道兽兄接不接A*算法结果路径平滑优化算法?
作者: 美兽    时间: 2008-6-22 06:21
以下引用雷欧纳德于2008-6-21 21:23:04的发言:

不知道兽兄接不接A*算法结果路径平滑优化算法?


路径之所以弯折在于拐点的存在,可以避免拐点的出现,例如设定转弯比直行消耗的G权值要高,对于RM大格子形式的游戏路径,可很大程度平滑路径,而且增加的消耗很小。

稍微复杂一些则可以先生成最短路径,之后前一拐点保持直行,依次寻找后面拐点与该拐点延长线的交点是否可通(逆序搜索),建议在前期搜索时建立拐点记录,相对第一个方法效果较好,但开销可能大些。




作者: 雷欧纳德    时间: 2008-6-24 00:09
呵呵,并不是拐弯这种平滑

我说的平滑路径是指在整个寻路结束后,再次对结果路径进行的一种优化算法

在3D环境中,使用导航网络寻路,就会发现不管如何寻路,结果总会出现冗余路径

最合理的做法是对每一个点进行直线碰撞检测,如果能直线抵达目标点,则抛弃该点之前的所有点,反复检测知道到达目的地

但是实际上3D游戏不可能这么做,因为碰撞检测的消耗不亚于寻路,所以我们把碰撞检测改为利用几何学原理来修正路径



如图,红色路径是寻路所得的结果,绿色是我们用人脑计算出的最优路径
显然,我们无法优化出绿色的那条路径,但是我们的目标是由红色路径优化出蓝色的那条





另外再问一个问题:
基于A*算法寻路的一个特点,从一个大区域向一个小区域寻路时,会耗费大量时间检测无用路点。这种情况有个很简单的解决办法,就是逆转,从小区域向大区域寻路的话则不会发生这种情况。那么如何来检测、并且决定是应该正向寻路还是应该逆向寻路呢?


呵呵,我也不要求写算法,一起探讨探讨~
作者: 司马睿风    时间: 2008-6-24 02:12
这个难哦雷子
作者: link006007    时间: 2008-6-24 02:16
npc 弱智拉直线的飘过{/gg}
期待你们的成果{/se}
作者: 小传子    时间: 2008-6-24 02:18
以下引用link006007于2008-6-23 18:16:10的发言:

npc 弱智拉直线的飘过
期待你们的成果

这个有点像CS的Z.ROBOT自动生成寻找MAP路点一样
作者: yangff    时间: 2008-6-24 02:41
对a*完全理解不能的人飘过
作者: 猫哥哥    时间: 2008-7-2 16:02
以下引用雷欧纳德于2008-6-23 16:09:28的发言:

基于A*算法寻路的一个特点,从一个大区域向一个小区域寻路时,会耗费大量时间检测无用路点。这种情况有个很简单的解决办法,就是逆转,从小区域向大区域寻路的话则不会发生这种情况。那么如何来检测、并且决定是应该正向寻路还是应该逆向寻路呢?


为什么不用空间换时间呢(虽然这种方法比较奔-_-b):
事先做地图的时候把坐标划为大小两个区域,同区域或小区域向大区域用正向,大区域往小区域的则用逆向,开销就只一次比较。用布尔值来做标记(反正只有大小两种情况),空间也不会增加多少吧。

另外个人觉得,根据地图复杂情况设置一个合适的H值,或许能减少无用点的搜索……
作者: 雷欧纳德    时间: 2008-7-2 23:35
实际上我考虑把地图建立成一棵bsp树,记录每个节点的大小
然后寻路的时候就可以判断节点空间的大小来决定方向

不过这只是理论,实际偶没打算做。。。bsp树貌似复杂了点,溜走




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1