您现在的位置:网站首页答辩论文计算机毕业设计

毕业设计 基于ROBOCODE的机器人坦克大战策略与算法设计

  • 简介:毕业设计-基于ROBOCODE的机器人坦克大战策略与算法设计,说明书共57页,22206字,附外文翻译,摘 要, Robocode 是一个在网上比较普遍的机器人战斗仿真器,它把Java语言完善的结合在一起,支持Java平台同时也支持Robocode的运行。开发
    类型:word    页数:57    字数:22206   
    资料包括:论文 外文翻译   
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载
文件大小:913.50KB
适用专业:程序设计
适用年级:大学
论文编号:204370

论文简介:
毕业设计-基于ROBOCODE的机器人坦克大战策略与算法设计,说明书共57页,22206字,附外文翻译
摘 要
Robocode 是一个在网上比较普遍的机器人战斗仿真器,它把Java语言完善的结合在一起,支持Java平台同时也支持Robocode的运行。开发者们可创建自己的机器人,把它放到这个平台上,同其他开发者们创建的机器人对手在这个平面上进行战斗。由于在创建机器人的过程中需要加入用户自己独特的策略代码,因此在战场中你会见到以进攻为重点的机器人,同时也会有以防守为重点的机器人。开发者们通过每一次的战斗经历,来了解对手机器人的长处,在不改变机器人自身特点的情况下,去吸收对手机器人的长处来不断的完善自己的机器人,才能使自己的机器人在战场中立于不败之地。可以说Robocode的诞生为智能系统的研究提供了一个很好的理论联系实际的实验平台。本文将要介绍坦克机器人系统,坦克机器人基本结构原理,而且还要重点从移动、扫描、射击、避弹等不同的角度,结合与其它一些策略的比较向大家展示SuPer-robot(机器人名字)的策略与算法。
关键词: Robocode ,机器人战斗仿真器,算法,策略

目 录
摘 要 I
Abstract II
第1章 绪 论 3
1.1 Robocode的定义与产生 3
1.2 Robocode整体内部架构 3
1.3 Robocode 系统参数 4
1.3.1 系统参数 4
1.3.2 战斗参数之静态参数 7
1.3.3 战争参数之动参 9
1.3.4 参数间的相互作用 11
第2章 坦克机器人的基本结构原理 12
2.1 机器人的结构及原理 12
2.1.1 Robocode机器人结构 12
2.1.2 Robocode机器人命令 12
2.2 创建机器人 14
第3章 坦克机器人的基本策略与算法 17
3.1 SuPer-robot的进攻策略与算法 17
3.1.1 移动: 17
3.1.2 扫描 22
3.1.2.1 信息收集 22
3.1.2.2 精确计算敌人的坐标 22
3.1.3 躲避炮弹 30
3.1.4 射击 34
3.1.5 SuPer-robot的其他类及事件 35
第4章 SuPer-robot的实战数据 37
结 论 39
致 谢 40
工作简历 41
参考文献 42
附 录1 44
附 录2 49
附 录3

系统参数
1.方向系统与坐标系统
整个战场是以屏幕正上角为0度,按顺时针排列的方向。整个战场的坐标是以屏幕左下角为原点,高为Y坐标,宽为X坐标。
[坐标系]:Roobcode整个坐标系都是战场屏幕以下左下角为顶点。
[绝对方向系]:robocode中不管机器人在哪个方向都是以静态战场为屏幕参照物的绝对角度(Heading),正上方为0角度。即是向北为0,向东为何90,向南为180,向西为270。
[相对方向系]:相对方向是以机器人的动态heading角度为参照的角度差,不再以整个静态屏幕为参照了,叫它相对是因为机器人的heading是随着机器人移动而不停的在改变,只是个相对物体。
[Heading]:是机器人方向与屏幕正上方的角度差,方向在0到处360之间。
[Bearing]:是机器人的某个部件如雷达发现的目标与方向的角度差,顺时针为正角度在-180到180之间。
图1-2 Robocode坐标系统
2.单位
距离单位,游戏中规定的距离是以像素(Pixels)点为单位,如果把屏幕缩小了,那就是以缩小后的像素点为单位,反之就是放大后的像素点为单位。
时间单位,游戏中规定的时间是以帧(frame)或滴答(ticks)(有点像时钟滴答),或时间周期(turns),或单独的时间片(simply timeslices)为单位.由于时间单位的多样化所以一直没有一个标准出来。我们利用getTime()函数可返回每个回合中的帧(frame)时间,注意每一场战斗都是由多个回合数组成的。所以每一个回合的开始都会设置Time的默认值为0。
3.比赛回合
比赛回合是比赛中设置的比赛次数,默认值为10,用户可利用函数getRoundNum()返回当前正在进行的比赛回合,并可利用函数getNumRounds()返回自己设置的总回合数。用户可在战场环境下选择菜单Battle->New Battle 在中间的Number of round选项中输入自己想要进行的回合。
4.战争速度
如果比赛的速度不太满意,想以更慢的速度观察比赛的每一个细节,好仔细研究机器人的性能;或想以更快的速度结束比赛来进行联赛。只要在Option->>Preferences->frame per second下的列表框中输入你想要的速度或选择你要的默认速度。当然这些都是我们自己所预设的值,实际上在战争中它会依据仿真引擎的处理时间而稍有不同。
图1-3 战争速度的设置及战争中比赛回合,战争速度的组合
上图标题栏中的Round 1 of 10 代表着10个回合中的第一个回合,22 FPS就是我们当时的比赛速度,你把屏幕最小化就会发现FPS变大了。仔细想想你会明白为什么的?对,它少了静态图片的播放了。仿真器不再需要加载静态图片,处理速度当然快了。
5.扫描器开关
不少初学者说看不到机器人雷达扫描的蓝光,由此怀疑自己创造的机器人雷达系统不完善。其实这是由于系统扫描器开关没有打开。选择Option->Preferences->Visible Scan Arcs(Cool,but May slow down game),就可打开扫描器了,这可能会影响速度,但现在的PC速度足以应付。
6.记分牌
所有回合比赛结束会看到自动弹出一个对话框,里面显示了一些数字,这就是记分牌,是设置的回合比赛结束后的成绩单。它是分析数据及参加联赛的重要依据。
图1-4 记分牌
Robot Name 是比赛机器人的名字;Total Scroe为这次比赛的总共得分;Survival是存活率的得分;Last Survivor Bonus是赢的次数相对对手的分红得分;Bullet Dmg是子弹损失得分也即发射的子弹数的得分;Bonus是子弹数的分红得分;Ram Dmg *2是撞击得分;Bonus是撞击得分分红;最后两项Survival 1sts,是赢的次数,不算做分数。所有分数加起来就是玩家的总分。


论文文件预览:
共1文件夹,1个文件,文件总大小:913.50KB,压缩后大小:322.25KB

  • 毕业设计-基于ROBOCODE的机器人坦克大战策略与算法设计
  • docROBOCODE机器人坦克大战策略与算法.doc  [913.50KB]

查看评论 已有0位网友发表了看法
  • 验证码: