找回密码
 点一下
查看: 2831|回复: 10

关于士兵攻击路线的算法

[复制链接]
发表于 2011-7-31 00:46:41 | 显示全部楼层 |阅读模式
最近作图中遇到的一个问题,由于也不算完全不懂技术问题,也没有绝对的对错之分,于是发在这里求讨论
这是关于士兵攻击路线的问题,像dota那样的地图,如果没有英雄而是你来造兵,你可以在地图上任意地点造兵营,但只能造兵,兵出来了后不受控制而是按预先给定的目标攻击。
另外再加一个条件,只有在两路中塔破掉以后,高地上的建筑才可以被攻击。
以下是脑海中浮现的几个(伪代码非触发,暂且理解为攻击目标队列吧):
深度优先搜索:
If 外塔数量==3
  攻击最近的外塔
  攻击该路中塔
&#160;&#160;if 中塔数量<2
&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;else if 外塔数量==2
&#160;&#160;&#160;&#160;攻击最近的外塔
&#160;&#160;&#160;&#160;攻击该路中塔
&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;else if 外塔数量<2
&#160;&#160;&#160;&#160;if 中塔数量==2
&#160;&#160;&#160;&#160;&#160;&#160;攻击最近的可被攻击的中塔
&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;&#160;&#160;if 中塔数量==1
&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
…………
差不多是这样(剩下的判断差不多,懒得写了= =),思路就是攻击外塔-内塔-外塔-内塔-高地。
缺点是如果上路外塔中塔和下路外塔破了的话,上路兵会穿过中路来打下路中塔,会很受伤吧[s:186]



广度优先搜索:
If 外塔数量==3
&#160;&#160;攻击最近的外塔
&#160;&#160;if 外塔数量==2
&#160;&#160;&#160;&#160;攻击最近的外塔
&#160;&#160;&#160;&#160;if 外塔数量==1
&#160;&#160;&#160;&#160;&#160;&#160;if 中塔数量==3
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击最近的可被攻击的中塔
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击最近的可被攻击的中塔
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;&#160;&#160;&#160;&#160;else if 中塔数量==2
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击最近的可被攻击的中塔
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;&#160;&#160;&#160;&#160;else if 中塔数量<2
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
…………
思路是外塔-外塔-中塔-中塔-高地,缺点也很明显,小兵会在各路间来回跑,很可能会贻误战机



某种优化后的深度优先思路:
if 外塔数量==3
&#160;&#160;攻击最近的外塔
&#160;&#160;攻击该路中塔
&#160;&#160;if 中塔数量<2
&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;else if 外塔数量==2
&#160;&#160;&#160;&#160;攻击最近的外塔
&#160;&#160;&#160;&#160;攻击该路中塔
&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;else if 外塔数量==1
&#160;&#160;&#160;&#160;if 中塔数量==1
&#160;&#160;&#160;&#160;&#160;&#160;攻击高地
&#160;&#160;&#160;&#160;else if 中塔数量==2
&#160;&#160;&#160;&#160;&#160;&#160;攻击(最近的可被攻击的中塔 与 最近的外塔)中较近者
&#160;&#160;&#160;&#160;&#160;&#160;攻击高地(或攻击的是外塔则攻击该路中塔-攻击高地)
…………
这样看起来似乎比原来好些了,但是大概还有缺陷。[s:192]
于是……大家有兴趣的话请帮忙看看有没有什么不足,或者有更好的算法;没兴趣的话就水吧,毕竟是水区的帖~


在这个时候发帖脑子晕乎乎的,不知所云是否有误,不知所云何物,不知所云,见谅
发表于 2011-7-31 09:14:43 | 显示全部楼层
城堡战争啊, 有人做过类似的哦,貌似是小鸟?
回复

使用道具 举报

发表于 2011-7-31 09:15:59 | 显示全部楼层
问了啥?
回复

使用道具 举报

发表于 2011-7-31 09:18:57 | 显示全部楼层
每天清除短消息,太多了。
回复

使用道具 举报

发表于 2011-7-31 09:20:12 | 显示全部楼层
是真的。
回复

使用道具 举报

发表于 2011-7-31 09:20:54 | 显示全部楼层
不过你知道我这个人口很严的,是不会告诉你谁天天天天天天发骚扰短消息的。
回复

使用道具 举报

发表于 2011-7-31 09:23:12 | 显示全部楼层

回 9楼(kwyj) 的帖子

你这是。。。

怎么和某红一样/
回复

使用道具 举报

发表于 2011-8-1 07:10:33 | 显示全部楼层
当时无法为你写的那首歌
却是我永远的遗憾 当爱逝去
如果所有的错重来一次
能否改变结局
终于落下休止符的那首歌
我听着每一个音符流过的回忆
为什么在那么多年以后
还不能说再见
回复

使用道具 举报

发表于 2011-8-1 07:14:51 | 显示全部楼层
再见。
回复

使用道具 举报

发表于 2011-8-1 07:16:08 | 显示全部楼层
有时候再见会哽在喉咙中
自己清楚地知道不会再见
却仍依然幻想着那种侥幸
回复

使用道具 举报

发表于 2017-5-16 11:20:46 | 显示全部楼层
lol最新出的传送门啊 1 选择最近的一条路 2 走到路上 3 一个一个塔打掉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-23 16:00 , Processed in 0.041190 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表