电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

robocode系统实训项目实施方案

7页
  • 卖家[上传人]:xzh****18
  • 文档编号:34254038
  • 上传时间:2018-02-22
  • 文档格式:DOC
  • 文档大小:83.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Robocode 系统实训项目实施方案一、项目 Robocode 简介Robocode 是一位 IBM 的工程师 Mat Nelson 用 Java 语言所创造的机器人战斗仿真引擎。Robocode 不是一个完整游戏,它是个半成品,你所做的就是为你的机器人坦克编写智能程序,让它能够移动、进攻、防御、躲避、开火。只用几十行代码,就能立刻创造出一个简单但完整机器人,你可以立即将它装入Robocode 引擎中,再从 Robocode 自带的那些水平不一的示例机器人中选取一个进行一番对战,还可以在网上下载由其他程序员编写的水平更高的机器人,与它们比试一下,看看自己的水平到底如何。 开发 Robocode,也是一个极佳的学习 Java 语言的过程。随着你的机器人的“智力”水平的提高,你的编程能力也就跟着水涨船高了。 二、项目目标通过 Robocode 系统的开发,要求学生:1、 进一步熟练 java 面向对象编程方法的设计与实现;2、 如何编写 Java 代码,如何处理 Java 中的事件,如何创建内部类;3、 全面实践软件工程项目,总结系统开发的基本方法与步骤;并就开发过程中遇到的问题以及解决

      2、的方法进行总结与归纳。三、具体实施通常玩的游戏不同的是:参赛者必须利用对机器人进行编程,给机器人设计智能来自动指挥它,而不是由键盘、鼠标简单地直接控制。Robocode 是一种有趣的竞赛性编程,使用几行简单的代码,就能够让你创建一个活生生的机器人,一个真正的在屏幕上与其他机器人互相对抗的机器人。你可以看到它在屏幕上四处疾驰,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。Robocode 可以让你在娱乐的同时学习与提高 Java 技术。1、游戏安装Robocode 项目已经成为开源项目,Robocode 可以 在 Robocode 首页下载 首页:http:/ (本项目教师已经下载完毕)提取自中国 Robocode 第一人,Wave 技术的创始人 iiley 所写的 Cigaret 机器人中。http:/www.robochina.org,进入了解 Robocode。http:/ 下载 Robocode在安装过程中,Robocode 将问您是否要使用这个外部的 Java VM 来编译机器人。您也可以选择使用作为 Robocode 分发包

      3、一部分而提供的 Jikes 编译器。2、游戏界面与基本角色当激活 Robocode 时,将看到两个相关的 GUI 窗口,这两个窗口构成了 Robocode 的 IDE:* 战场* Robot Editor战场是机器人之间进行战斗直至分出胜负的场地。主要的仿真引擎被置于其中,并且允许在这里创建战斗、保存战斗以及打开新建的或现有的战斗。通过界面区域内的控件,可以暂停或继续战斗、终止战斗、消灭任何机器人个体或获取任何机器人的统计数据。此外,可以在此屏幕上激活 Robot Editor。Robot Editor 是一个定制的文本编辑器,它可以用于编辑生成机器人的 Java 源文件。在它的菜单里集成了 Java 编译器(用于编译机器人代码)以及定制的 Robot 打包器。由 Robot Editor 创建并成功编译的所有机器人都会处于战场上一个部署就绪的位置。(高手认为它所提供的文本编辑器不怎么好,最后还是用 jb 来编辑,只要在 Requird Libraries 加入解压缩后的 robocode.jar 就可以了)Robocode 里的每个机器人都由一个或多个 Java 类构成。这些类可以被

      4、压缩成一个 JAR 包。为此,Robocode 的最新版本提供了一个可以在战场 GUI 窗口中激活的“Robot Packager”。图 2. 对 Robocode 机器人的详细分析Robocode 机器人是一个图形化的坦克,请注意,机器人有一门可以旋转的炮,炮上面的雷达也是可以旋转的。机器人坦克车(Vehicle)、炮(Gun)以及雷达(Radar)都可以单独旋转,也就是说,在任何时刻,机器人坦克车、炮以及雷达都可以转向不同的方向。缺省情况下,这些方向是一致的,都指向坦克车运动的方向。3、平台参数方向 - 整个战场是以屏幕正上角为 0 度,按顺时针排列,90,180,270.。 位置 - 整个战场的坐标是以屏幕左下角为原点,高为 Y 坐标,宽为 X 坐标。 距离 - 游戏中规定的距离是以像素(Pixels)点为单位,如果你把屏幕缩小了,那就是以缩小后的像素点为单位,反之就是放大后的像素点为单位。 时间 - 游戏中规定的时间是以帧(frame)或滴答(ticks)(有点像时钟滴答),或时间周期(turns),或单独的时间片(simply timeslices)为单位。 回合 比赛回合是

      5、比赛中由用户自己设置的比赛次数,默认值为 10。 帧速 - 默认为 30。 扫描 - 默认为无。 声音 - 默认为无。 4、游戏规则: (1 )生命规则: 相撞损失:撞到墙时,生命点损伤度=Math.abs (velocity) * 0.5 -1。撞到另一个坦克时,移动停止,生命点损失 6 点,扣除积分 1.2 分。 击中损失:当子弹能量为 1 时,我们生命点损失=4 * power,如果子弹能量大于 1,那么我们的生命损失+= 2 * (power-1)。 发射损失:如果我们的子弹打中别的坦克,我们可以从子弹那窃取到3*power 的能量。 (2 )炮弹规则: 子弹能量:子弹能量是通过函数 getPower()得到的。它大于等于 0.1,小于等于 3。子弹速度:每一颗子弹有着自身的速度,这在处理敌人向你开炮前的移动策略可是很有帮助的。子弹的速度也和它的能量有关: speed = 20 - 3 * power。由于能量范围在 0.1 到 3 之间我们可求得子弹的速度范围:11 = bullet speed = 19.7。 (3 )炮管规则: 旋转速率:炮管在每一个时间周期内旋转速率=2

      6、0 度/帧(frame) 炮管热量:当我们开火时,炮管产生的热量由子弹开火时的能量决定。即:热量=1+(firepower/5), 利用函数 getGunHeat()可以得到炮管当时的热量,只有当 getGunHeat 恒等于 0 时,我们才能再次发射子弹。 冷却度:有热度当然就有冷却度,不冷却我们的炮管会永远不会开火的。系统设定的默认冷却速度是 0.1/tick(时间周期),我们可通过函数 getGunCoolingRate()得到这个参数值。 (4 )雷达规则: 旋转速度:雷达以每时间周期 45 度的速度旋转。也即 45 degrees/frame. 扫描面积: 雷达扫描是呈扇形的,它的开始位置到终止位置的长度大约为1200。只要我们放大屏幕可以通过眼睛估算出这个面积。 扫描排列:扫描到的数据有墙,目标,子弹等等。这些是按扫描距离来排列,从离雷达最近的物体开始到最后扫描到的物体。 (5 )运行规则: 前进速度:坦克最大的速度(Velocity)为 8,函数 getVelocity()返回了坦克当前的速度。 加/减速度:加速度为 1 像素(pixel)/帧 frame ,减速度为 2

      7、 pixel/frame。 参考公式: 设 s 为距离,Vt 为终速度,Vo 为初速度,t 为时间,a 为加速度: 位移公式 sVo*ta*t*t/2 速度公式 Vt Vo a*t 平均速度公式 v(Vt Vo)/2s/t 加速度公式 a(Vt Vo)/t (这些公式高一大家都学过吧?) (6)旋转规则: 旋转速度:机器人的旋转速度和当前的速度有关即旋转速度=10 - 0.75 * getVelocity()。 相互作用参数:雷达安装在炮上,炮安装在机器人上,它们会相互影响。如果我们向左转动炮管,而使雷达向右转动,那么雷达只会向右转动(45-20) =25度;如果两者都向右转动,雷达将向右转(45+20)=65 度。同样的道理炮和机器人也是方向同相加,方向反相减。 5、积分规则:Robot Name - 机器人的名字; Total Scroe - 为这次比赛你的总共得分 ; Survival - 是你存活率的得分; Last Survivor Bonus:你是赢的次数相对对手的分红得分; Bullet Dmg:是你的子弹损失得分也即发射的子弹数的得分 ; Bonus:是子弹数的分红得分

      8、 ; Ram Dmg *2 是你的撞击得分; Bonus:是你撞击得分分红 ; 最后两项 Survival 1sts,是你赢的次数,不算做分数。 所有分数加起来就是你的总分。记住在联赛并不是总分越高越好,它是算综合平均分的。其中撞击分和子弹损失分就要越少越好。你如果观察两大高手比赛的记分牌,你会发现他们的 Ram Dmg 和 Ram Dmg 中的 Bonus 一般都为 0。 6、基本术语在细究 API 之前,让我们先来了解一些术语。机器人基本上是一些小型的坦克。这些坦克可以旋转,向前或向后移动。它们的顶部有一个用于射击的火炮。在火炮上面还有一个雷达系统,用于侦测其它机器人。机器人的底盘、火炮和雷达系统都可以独立运动,也可以相互“锁定” ,一起移动。换句话说,如果将雷达向下锁定,那么它将随火炮一起移动;如果火炮向下锁定,它将随机器人的底盘一起移动。下面是一些你在编写机器人之初用的最多的方法函数:ahead(), back() 向前和向后移动fire() 开火setAdjustGunForRobotTurn() 控制火炮是否向下锁定setAdjustRadarForGunTurn() 控制雷达是否向下锁定 turnRight(), turnLeft() 实现机器人的旋转turnGunRight(), turnGunLeft() 旋转火炮turnRadarLeft(), turnRadarRight() - 旋转雷达反射镜4、 你所做的就是为你的机器人坦克编写智能程序,让它能够移动、进攻、防御、躲避、开火;四、 实训报告撰写实训报告,总结此系统开发的基本方法与步骤;并就开发过程中遇到的问题以及解决的方法进行总结与归纳。四、 考核方法与评分标准该项目采取过程考核和提交实训项目、实训报告的方式进行考核,项目所占实训成绩的总分数为 6 分,其中:1、系统功能的实现(3 分)2、程序的开发调试能力(3 分)

      《robocode系统实训项目实施方案》由会员xzh****18分享,可在线阅读,更多相关《robocode系统实训项目实施方案》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.