导航:首页 > 源码编译 > 红警1寻路算法

红警1寻路算法

发布时间:2022-07-08 01:56:46

1. 红警如何算分

按照破坏建筑物的数量和消灭敌人的数量计算,以摧毁建筑数为主要记分,再加打败人数,还有己方建筑数,最后还有胜利得分,被敌人打毁了就算损失分 摧毁了敌人的东西就算摧毁分 建了兵营这样的东西就算建造分 以此类推。

2. 类似红警一功能的程序实现

那个是电脑自动沿两点间直线路径外加可执行路径合起来以最短路程(不是位移)移动的

3. 红警地图

你在qq对战平台 浩方 上玩几盘 每次红色警戒在开始时都要看你的是否有地图
如果你没有就会自动下载下来 你到时候重启一下游戏 你就可以玩红色警戒的
新地图了
另外我叫你几招 共和国之辉的
(全部是我亲手打的)
空投强建:必须在看的到地图的地方
先点一个建筑完成后先别建出来,这是你还要有已经完成了的伞兵,现在就行了,先点散兵,(先别撒)然后点中已经完成了的建筑,最后在小地图上想建在那点在那就行了。

直接强建 地图没开都可以用 可以直接把巨炮建到他人基地中去
建筑完成后:
先点建筑一下;
再点那个维修的扳手标志一下不要放开;
放到任意一个平地上松开左键点右键(要快 多试几次就行了)

偷星星
制造一个工程师和一个间谍,给自己的坦克加星,先强攻兵工厂,攻击一下就可以(不要打爆了),然后把工程师放在前面 间谍放在后面 按Z建编辑路径(在地图上点一下 再点兵工厂 图标会变成维修的 然后松开Z 工程师和间谍就会一同向里面走 在半路把工程师拉回来 再造一个间谍 又可以偷兵营 作战实验室)

另类偷钱(只限于苏军)
造兵营 然后用围墙围死兵营(绕着兵营围一圈)造复制中心 然后不管你造什么兵都会是免费的 造间谍 然后把间谍弄回复制中心 就可以的800元
比网上的方法更好 方便你计算
网上的算法 赚:1000乘倍数0.9乘2人-用去1000=余下800 (像教小学生 呵呵 )
我的算法 1000乘倍数0.9=余下900 多100元 在网上对战钱就比别人快了

在桥上安放船
用坦克把桥炸坏,然后,调1.2艘船只,放在断桥处,然后用工程师把桥修复,这时,船就会固定在桥上,并可以攻击做为防御用

防止自爆卡车被尤里控制
把自爆卡车开到快到他人基地的地方 让一个恐怖机器人进自爆卡车
就是尤里控制都不怕 如定时炸弹 (疯狂伊文也可以安个“火炮”到那上去)

苏军步兵bt用法:
造一辆防空车5个动员兵,一个疯狂伊文。
给动员兵安上“火炮”,并把动员兵装上车。
冲向敌人基地 呵呵

共和国之辉-bug技巧 上
http://www.boosj.com/161154.html
共和国之辉-bug技巧 下
http://www.boosj.com/161156.html
这些是我上面所说的方法的视频 我本想做视频的 但总没时间
好了 写了这么多 全是我手打的哦 多给我点分吧 我很缺分 谢了!
另外我的QQ是515215310 如果有疑问就联系我把 要注明来意 我好分组

4. 一台电脑装两个红色警戒3,统计资料怎么算,战役进度怎么算

各有各的算法,比如第一个红警就是 红警3(1),第二个就按红警3(2)算
至于统计资料,战役进度,那都是各有各的存档。
当然,如果你操作不当,容易导致两个游戏存档,类型,进度,混到一起!
我就干过这种事!

5. 红警2第六关划分怎么过

网上的攻略就那么几个,都是复制的。我告诉你最容易的、最成功的(可能几个舰船名字不对,看懂就行),因为没有陆军进攻你,只管挖矿、造船。这一局的任务,消灭所有海军,陆地上的不用管。
1、开局:气垫船登陆,自动展开。注意,不要在这个岛建设!时间拖后毫不影响战局!只留下一只狗,其它的全部登上气垫船。
2、开辟基地:两个气垫船、两艘海螺、三只潜艇,这是全部家当。贴着地图最下方,一直行进到最左边岛屿。注意:路途非常遥远,海螺要等等潜艇,接近岛屿有一艘敌舰,一块攻击受损小。寻路期间,用第一个岛上狗,向上探路,吃掉三只奶牛会有一个箱子,捡钱大概5000,狗的使命完成.
3、建设:打掉守岛的一艘敌舰,登陆,自由建设,捡箱子,多造几辆矿车、矿场。不要发展陆军,没有陆军攻击。几个小兵向上探路,捡到一个箱子,又是5000左右吧,就不要探路了,因为周边有敌舰巡逻、不要招惹。注意雷达地图,右上角会有我军的三艘无敌舰、海螺开赴第一个岛,收编到基地附近。
4、造潜艇:最下方建设两个船厂,狂造潜艇,留几艘守护基地,不要向上探路。注意雷达地图,过段时间右上角,会有大量敌舰、航空母舰来进攻,组织大量潜艇在中途拦截,一艘艘集中攻击(先不要打航母)。要攻守平衡,基地留几艘潜艇、全部海螺防空,对付漏网之鱼,但可以说基地防守简单、基本没损伤。
5、最后进攻:中途拦截,潜艇损失很小。加上不断制造的潜艇,一起在中间位置、上方,寻找敌军海港入口,潜艇探路。用无畏舰打掉入口两侧光陵塔,潜艇纵深进入,集中攻击敌舰,最后打航母、船厂。寻找右侧剩余敌舰,消灭。在海港入口右侧有两艘巡洋舰,更轻松。
6、轻松过关。这个方法非常容易:金钱无压力、防守无压力,大量潜艇中途拦截就行了。。。。。

6. 高分求算法:寻找与特定对象距离最近的对象

用现在的ID,X,Y三个元素来找最近点的话无论什么办法,都至少要与每个点进行一次距离的判断,比较X或者Y也好,计算距离(当然这个距离是不用开平方的,与其他所有点的距离都不开平方也能比较相对的距离长短)也好,所以如果只有这三个元素的话,其实再怎么改也不会有太大的优化的。

最好还是添加一些辅助信息,比较常用的就是以划分网格的方法,将所有点分派在不同的网格中,然后以网格为基础找最近点,这样的话就要加一个网格的结构(以空间换时间),里面存放的就是属于这个网格的点的ID,通过编号规则可以很快的找最近的网格,然后再找里面的点,这样可以提高点查找速度。

呵呵,不好意思,没想清楚就写了:P,改一下,改一下,再加一步就好了

1.给点添加一个所属网格的信息:
Class A
{
public int ID;
public int X;
public int Y;
publci int Index;//所属网格编号
}
2.构造一个点链表,这是为了减少空间和方便处理而加的,后面的算法里会感觉到用处
(为每个点对象建立一个点链表节点)
Class I
{
public A *pAObject; //指向一个点对象
publci I *pNextA; //指向下一个
}
3.构件一个网格信息结构
Class G
{
public int ID; //网格编号
public I *pAObjects; //指向一个点链表(至于这个是带头节点还是不带头节点的都一样啦)
//这里用链表比较好
//第一,因为点可移动,那么点对象个数可以随意,可以发挥链表的扩展性
//第二,不需要取中间节点,也就没有用到数组的长处
}
4.构建网格,比如以1000为长度(长度可以自己定义,关键是平衡空间和速度关系),建立正方形的网格,那么(0,0)到(1000000,1000000)就是有1000*1000个网格(在给网格编号的时候最好有规律,那么就能通过List或者其他数组容器的下标来获得网格信息)
5.添加点的时候,先判断属于哪个网格,然后在点信息中添加网格编号,同时构建对应的点链表节点,并添加到所属网格的链表中
6.最后就是查询点了,首先获得出发点中的所属网格信息,看这个网格中是否有其他点:有,则一个个的判断距离(距离的平方),那么最近点一定在这些点里面(如果点还是太多,那么就考虑缩小网格的范围);没有,那就找所属网格周边8个网格中是否有点,有,则再找最近点,没有就再往外扩(如果感觉网格太多,可以加大网格的范围)
7.以找到的最近点到出发点的距离为基准,看看出发点到周边网格在这个距离内会接触到的(没有在6中遍历过的)有几个网格,把这些网格中的点再查看有没有更近的就行了

注:
1.如果还要优化就是加大网格的层次,可以用多层网格,这就会更复杂一点
2.在网格信息结构(G)中,因为点会移动,那么删点链表节点会有一个查找过程,如果觉得这个慢,那么就在点对象结构体中加一个所属点链表的指针:
class I;
Class A
{
public int ID;
public int X;
public int Y;
publci int Index;//所属网格编号
publci I *pI;
}
....

呵呵,看了lipai006的回答,想了下似乎也是可以实现的,只要多花点内存就可以达到比较好的速度了,而且也不需要真的从X坐标出发这样慢慢的以扇形扩展了啦,通过做一些辅助结构,就直接可以从出发点的X坐标出发,找同X不同Y中Y坐标与出发点最近的就行啦,循环结束条件就是X的扩展距离已经大于当前最小距离,因为再往外也肯定比当前最小距离大了。这个方法也就是要更复杂一些的辅助结构做索引,添加点的时候也要多做些事情,而且实现上的代码相对网格方法复杂一些,但查找速度应该比网格会快一点,因为毕竟是直接找点去了,其实网格方法就是把一批点的X,Y坐标看成是一样的,这样先过滤一批而已,是个速度与复杂度的折中。

xx_lzj:划分区域的目的就是为了使每个区域内的点不能太多,根据我的结构,每个区域有没有点,一个bool判断就够了,不会存在太稀疏影响效率的事情,不过最坏的情况的确会退化到遍历整个点空间,所以这个方法的时间复杂度仍然是O(n)。
你的方法其实和lipai006说的原理是差不多的(如果我对你们链表结构的猜想准确的话),无非就是通过X,Y坐标形成一个二维双向链表,在形成这个链表的过程会比网格相对复杂一点,而且也不是像你想的只要判断8个点就够的,当只有一个点在中间,其他点分布成以这个点为圆心的圆周上时,按照贴主的要求,难道只有8个最近点吗??在这个情况下,你的最坏复杂度还是O(n),但就如我说过的,这个方法的平均时间复杂度在参数上是会比网格的低一点,但是算法本身的代码复杂度上会高一点,而且在插入点的过程中的时间消耗会大一点而已。我觉得这是一个整体的过程,不能为了查找的快速牺牲太多其他的时间。
*************
xx_lzj:不好意思,你的链表我还有些不明白的地方:1.二维双向链表每个节点有4个指针,你能否把这4个指针如何获得的说一下,最好不要取边界线上的点,取中间的一个点进行介绍。2.对于初始化和修改点坐标的时候,现有数据如果是链表结构(不是数组),如何能不依靠其他辅助数据进行折半查找?3.修改某个点坐标之后,根据你的链表结构,我感觉不是删除、插入节点这么简单的,能不能具体点说明。

7. 红警修改AI

关于AI的制作

AI分为4个部分 一个完整的AI必须具备这4个部分
====================================================
1) [TaskForces] [部队成员组]=指定一支队伍里都由哪些单位组成
2) [ScriptTypes] [命令组] =指定一支队伍将要进行的作战行动
3) [TeamTypes] [作战队伍] =指定一支队伍的基本设置编成
4) [AITriggerTypes] [AI触发] =设置当达到某些条件时电脑就会出这组部队
====================================================
现在让我们来一个一个的解析

********************************
**********[TaskForces]**********
********************************

首先 我们在他的下面看到一排注册名 如果你想创建新的使命部队 请在那注册

下面 我们举一个使命部队为例
[0A6E3F1C-G]
这就是你在上面注册的名字 记好它 我们后面还要用
Name=2 Prism Tanks, 2 IFV, 4 Grizzly
Name 这个仅仅是作为注释用 没有实际意义
0=2,FV
1=2,SREF
2=4,MTNK
这是使命部队的正文部分 意味着该使命部队的组成为2FV(多功能)2SREF(光棱)4MTNK(灰熊) 想改变制造某物体的数目 就更改某物体前面一个数字,新物体就在后面加上一行 格式同上 序数增加
Group=-1 小队编号,-1为无编号
Group= 这个
-1 解散所有的运输工具
?? 解散队伍
?? 保留所有
?? 解散单位,保留运输工具
?? 只保留速度最快的 ?
?? 只保留最近的 ?
?? 在最大威胁附近集合
-40094 在最小威胁附近集合
中间的几个值如果有人有请发给我 十分感谢

********************************
*********[ScriptTypes]**********
********************************
[0607B8FC-G]
Name=General Base Defense Attack
Name 这个仅仅是作为注释用 没有实际意义
0=54,0
1=53,0
2=0,7
3=49,0
4=0,2
5=0,1
AI最难的地方来了 这个格式是T=X,Y
T是个序数 和上文的一样 直接加就可以了
X,Y 他们组合起来代表一个步骤 比较麻烦 我把他们一一列出以便各位观赏!
**X一共有64个值 我拣有用的说 没说的一般都没什么用处了(在我看来)**
====================================================
X=0:攻击物体 Y=将要攻击的物体类型
Y=1:任意东西
Y=2:任何建筑
Y=3:矿车(矿厂)
Y=4:步兵类
Y=5:车辆类
Y=6:工厂类
Y=7:防御建筑类
Y=8:超级武器
Y=9:电场类
Y=10:可进驻物体
Y=11:科技建筑类

X=1:攻击Y号路径点(不推荐)
X=2:使拥有Cyborg=yes(生化机器人)的步兵进入疯狂状态(不分敌我) [未证实] Y=0
X=3:移动到Y号路径点
X=5:警戒Y*6秒
X=6:重复第Y行(序数T的那行)
X=8:运输工具卸载
Y=0:保留所有
Y=1:保留运输工具
Y=2:保留单位(推荐)
Y=3:全部解散

X=9:展开单位 Y=0
X=10:跟随距离最近的友好单位 Y=0
X=11:执行命令
0,啥也不干
1,(通过威胁等级)执行AI中的攻击任务
2,移动到目的地
3,跟随另一队移动
4,撤退
5,保护目标,攻击来犯之敌
6,保护目标,但穷寇末追
7,进入建筑或交通工具
8,工程师占领
9,在修理单位时,把他吃了....估计是尤里的变卖场(只能用于建筑)
10,矿区采矿,矿场卸货
11,守卫初始地区
12,航母载机回巢
13,停止活动(有可能的话)
14,伪装伏击单位开火
15,游猎歼敌
16,卸货
17,埋雷包
18,建筑建立
19,卖出建筑
20,修理单位(维修厂)
21,特种部队突击(这个over-ride应该是推翻,不管不顾的意思,为什么这样不懂,就参考一下好了)
22,核弹井发射
23,无威胁目标
24,开门关门
25,巡逻
26,空降机飞行
27,空降机空投
28,待命
29,空间跳跃
30,展开攻击
31,侦察机飞行(YR)
32,侦察机照相(YR)

X=14:运全部兵 Y=0
X=16:在Y路径点附近巡逻
X=17:更改应用脚本 Y为脚本名称 [未证实]
X=18:更改部队 Y为部队名称 [未证实]
X=21:分散部队 Y=0
X=29:自动生产 似乎没用 还是写出来的好
X=30:出售所有单位并进攻对手 这个在遭遇战快速游戏模式下的唯一用处是自杀 Y=0
X=43:使运输停止直到装满
X=46:攻击特定建筑 Y=特定建筑在RULES中注册的值(K=XXX)加上0/65536/131072(推荐)
X=47:移动到特定建筑 Y同X=46算法
X=48:侦察
X=49:使之前动作完成再进行下一个动作 Y=0
X=53:集团冲锋到对方阵地(快慢协调 就是说快的要等慢的一起 Y=0
X=54:在自己阵地集合 Y=0
X=55:加铁幕 Y=0
X=57:超时空到对方家某些建筑附近
Y=1:任意东西
Y=2:建筑
Y=3:矿车
Y=4:步兵
Y=5:车辆
Y=6:工厂
Y=7:基础防御
Y=8:最大威胁
Y=9:电场
Y=10:可进驻物体
Y=11:科技建筑
X=58:移动到友好建筑 Y同X=46算法
X=60:进入回收站 Y=0
X=61:进入坦克碉堡 Y=0
X=62:进入生化反应堆 Y=0
X=63:进入战斗碉堡 Y=0
X=64:进驻建筑 Y=0
====================================================

********************************
**********[TeamTypes]***********
********************************

[0A6E210C-G]=作战集团 这个也要注册
Name=Allied Bombard - H1
Name 这个仅仅是作为注释用 没有实际意义
VeteranLevel=1 经验等级 1=无级 2=一级 3=三级 任务地图里才能设为2或3

MindControlDecision=0 在YURI游戏里电脑的尤里方控制别人后会把俘虏怎么样。
0 = 无法心灵控制别人 (也就是部队里根本就没有能控制别人的单位,就得是0)
1 = 加入另外需要的队伍
2 = 放进部队回收站
3 = 放进生化反应堆
4 = 前去攻击敌人
5 = 就在原地
====================================================
Loadable=yes=部队攻击完后撤退,待会再攻击(一般使用在像飞机那样需要补充弹药的部队里)
Full=yes=完整小队 AI(MD)INI里得设为=no
Annoyance=yes=烦恼效果(任务地图)AI(MD)INI里得设为=no
GuardSlower=yes=防卫减缓 NO代表部队在基地中作出还击时不会变慢
House=<none> 就NONE 除非是单个国家的特殊攻击模式
Recruiter=yes=AI会动用现有的单位去组成队伍,优于去建造新的单位来组成队伍
Autocreate=yes=没有达到触发条件电脑也会生产这支部队,只不过部队将不会去执行任何命令
Prebuild=yes=电脑在还没需要时预先建造此队伍
Reinforce=yes=这是增援部队,一般用在防御部队。
Droppod=yes=这是空降部队(任务地图)AI(MD)INI里得设为=no
UseTransportOrigin=yes=使用存在的运输工具(当前一运输型部队是TransportsReturnOnUnload=yes=运输单位在完成卸载后返回基地)
Whiner=yes=哀叫效果(任务地图)AI(MD)INI里得设为=no
LooseRecruit=yes=当前的部队完成任务后将会被解散,而不会加入另一队中
Aggressive=yes=该部队将按Script=所使用的命令组里的命令去执行。
Suicide=yes=这是将进行自杀攻击的部队
Priority=5 建造部队时的优先权。通常为整数,数字越小,AI建造的可能性越大
Max=1 共生产几组这样的部队
TechLevel=0 指定可以制造此队伍的最低科技水平,通常设为0
Group=-1 分组
OnTransOnly=yes=这是传送部队(任务地图)AI(MD)INI里得设为=no
AvoidThreats=yes=部队会忽略任何攻击继续前进. no=在遇到敌人时就会开火,在被攻击时就会停下还火
IonImmune=no 默认NO 不要更改
TransportsReturnOnUnload=yes=运输单位在完成卸载后返回基地
AreTeamMembersRecruitable=YES=可以为该组部队补充队伍中被消灭的成员
IsBaseDefense=yes=这是在基地里防御的部队
OnlyTargetHouseEnemy=yes=只对付敌对玩家的单位,而不攻击中立的单位
Script=0607B8FC-G 所使用的命令组
TaskForce=0A6E3F1C-G 所使用的部队成员组

********************************
********[AITriggerTypes]********
********************************
这是最讨厌也最难记的部分 请大家注意了

0D62199C-G= 这个不要注册 何况你也没地方注册 ^_^
[A] Allied Bombard - H1 vs Sov, 名字 只起注释作用
[B] 0A6E210C-G, 使用的TeamTypes名
[C] <all>, 哪个国家使用它 和上文保持一致
[D] 8, TechLevel 和上文保持一致
[E] 0,
====================================================
-1: 普通触发
0: 敌人拥有[F]物品
1: 自己拥有[F]物品
2: 敌人电量黄
3: 敌人电量红
4: 钞票超过数量
5: 铁幕完成超过AIMinorSuperReadyPercent= 数量
6: 超时空完成超过AIMinorSuperReadyPercent= 数量
7: 中立拥有[F]物品
====================================================
[F] NAPOWR, 物品名称 如果上文[E]不是0,1,7就填<none>
[G] ,
====================================================
01000000 代表一个值 01就是1 0a就是10 16进制
03000000 中间可以取0-5 分别是小于(0),小于等于(1),等于(2),大于等于(3),大于(4),不等于(5)
**上面两个合起来 加上[E],[F]的值构成一个完整的触发模式:本文中为"敌人拥有苏联电场大于等于1个"
请不要更改 未知作用
====================================================
[H] 70.000000, 触发比重,与所有可能触发一起构成一个随机触发系统,这个比重更改请见AITriggerSuccessWeightDelta= AITriggerFailureWeightDelta=-50 分别代表成功与失败时触发比重的增减情况
[I] 10.000000, 触发最低比重
[J] 70.000000, 触发最高比重
默认比重中,只有10, 20, 40, 50, 70, 500, 5000这7个值有用 [未证实]
====================================================
[K] 1, 是用于遭遇战模式的 0=不是
[L] 0, ???
[M] 1, 谁用这个触发 1盟2苏3尤
[N] 0, 1=是留在基地周围防守 与上文一致
[O] 0CB246CC-G, 这个触发所带动的另外一个触发 填TeamTypes名
[P] 0, 简单电脑是否使用他 0=不 1=是
[Q] 0, 中等电脑是否使用他 0=不 1=是
[R] 1. 困难电脑是否使用他 0=不 1=是

阅读全文

与红警1寻路算法相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:579
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:426
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:350