Robocode历史概况:
1995年,Mat Nelson进入IBM,开始接触JAVA。2000年,随着JAVA语言成熟,Mat Nelson这个狂热的玩家看到了创建这个他一直想玩的游戏的机会,着手开始创建Robocode。
2001年,IBM以 alphaWorks 下载的形式发布。
2008年1月,Robocode1.5.2 最新版本发布。
http://robocode.sourceforge.net/
安装要求
Java 5.0 or newer(Windows和Unix/Linux平台)。
注意部分linux操作系统下,由于JSDK的内部BUG,可能无法正确安装运行。
平台参数
方向 - 整个战场是以屏幕正上角为0度,按顺时针排列,90,180,270...。
位置 - 整个战场的坐标是以屏幕左下角为原点,高为Y坐标,宽为X坐标。
距离 - 游戏中规定的距离是以像素(Pixels)点为单位,如果你把屏幕缩小了,那就是以缩小后的像素点为单位,反之就是放大后的像素点为单位。
时间 - 游戏中规定的时间是以帧(frame)或滴答(ticks)(有点像时钟滴答),或时间周期(turns),或单独的时间片(simply timeslices)为单位。 回合 比赛回合是比赛中由用户自己设置的比赛次数,默认值为10。
帧速 - 默认为30。
扫描 - 默认为无。
声音 - 默认为无。
游戏规则:
生命规则:
相撞损失:撞到墙时,生命点损伤度=Math.abs (velocity) * 0.5 -1。撞到另一个坦克时,移动停止,生命点损失6点,扣除积分1.2分。
击中损失:当子弹能量为1时,我们生命点损失=4 * power,如果子弹能量大于1,那么我们的生命损失+= 2 * (power-1)。
发射损失:如果我们的子弹打中别的坦克,我们可以从子弹那窃取到3*power的能量。
炮弹规则:
子弹能量:子弹能量是通过函数getPower()得到的。它大于等于0.1,小于等于 3。
子弹速度:每一颗子弹有着自身的速度,这在处理敌人向你开炮前的移动策略可是很有帮助的。子弹的速度也和它的能量有关: speed = 20 - 3 * power。由于能量范围在0.1到3之间我们可求得子弹的速度范围:11 <= bullet speed <= 19.7。
炮管规则:
旋转速率:炮管在每一个时间周期内旋转速率=20 度/帧(frame)
炮管热量:当我们开火时,炮管产生的热量由子弹开火时的能量决定。即:热量=1+(firepow