水战策略之精准打击
研究了一下陶陶同学的水战程序(见水战博客评论),发现很有启发性,不过说实话,他把顺时针与逆时针刚好颠倒了。另外,他为精准打击设置的复杂算法,还是很费思量的,于是,我大刀阔斧地删除了那些令人费解的代码,取其最精华的部分,贴到这里与大家分享。
var ssc = 0; // 粗扫描
var ssx = 0; // 细扫描
while (true){
if(scan(ssc,20)<=70){
if (ssx>=ssc-10 && ssx<=ssc+10){
if (scan(ssx,2)<70){
cannon(ssx,scan(ssx,2));
}else{
ssx += 1;
}
}else{
ssx = ssc-10;
}
}else{
ssc += 20;
}
}
陶陶同学的方案里有两部粗扫描雷达,扫描角度为20度,分别沿顺时针及逆时针方向旋转,当发现敌人时,两个雷达合并为一个雷达,然后利用小角度雷达(扫描角度为5度),快速在粗扫雷达范围内搜索目标,并进行精准打击。
经过我修改后的代码,胜率大概50%,可以通过修改其中的参数,来提高胜率,可改进的如雷达(包括粗扫与细扫)的扫描距离与扫描角度等。
最后还要感谢陶陶同学在百忙之中贡献出他的代码。
赞 (0)