Robocode攻略之第一个Robot
时间:2019-01-17
本文章向大家介绍Robocode攻略之第一个Robot,主要包括Robocode攻略之第一个Robot使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
目录
这是经典的“第一个Robot”教程,告诉你如何创建你的第一个Robot。创建一个robot很简单,但想要赢没那么简单。你可以只花几分钟也可以花上上把个月。小心上瘾!你会经历成长的烦恼,但是你将教会robot如何行动,躲闪以及作战。是否该躲在某个角落或者冲进战场?
开始
- 准备好创建第一个robot了吗?希望你发现这很简单直接并且令人着迷!
- Robocode自带许多样板robot,可以用Robot Editor来查看。
- 在这部分,我们将用Robot Editor来创建真正属你的,全新的robot。
Robot Editor
第一步是打开Robot Editor
- 点击Robot菜单
- 选择Source Editor
- 点击File菜单
- 选择New Robot
- 输入robot的名字和robot所在包的包名
新的robot
现在看到的是如下代码
package seu184636;
import robocode.*;
//import java.awt.Color;
// API help : https://robocode.sourceforge.io/docs/robocode/robocode/Robot.html
/**
* MyFirstRobot - a robot by (your name here)
*/
public class MyFirstRobot extends Robot
{
/**
* run: MyFirstRobot's default behavior
*/
public void run() {
// Initialization of the robot should be put here
// After trying out your robot, try uncommenting the import at the top,
// and the next line:
// setColors(Color.red,Color.blue,Color.green); // body,gun,radar
// Robot main loop
while(true) {
// Replace the next 4 lines with any behavior you would like
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
// Replace the next line with any behavior you would like
fire(1);
}
/**
* onHitByBullet: What to do when you're hit by a bullet
*/
public void onHitByBullet(HitByBulletEvent e) {
// Replace the next line with any behavior you would like
back(10);
}
/**
* onHitWall: What to do when you hit a wall
*/
public void onHitWall(HitWallEvent e) {
// Replace the next line with any behavior you would like
back(20);
}
}
关于代码的一些说明:
- import robocode.*说明你将使用Robocode提供的对象来创建robot
- public class MyFirstRobot extends Robot说明创建的是一个Robot类型对象
- public void run() 战斗开始时,调用run函数
让我们来移动吧
while(true) {
// Replace the next 4 lines with any behavior you would like
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
想射哪就射哪
当雷达扫描到robot时,fire:
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
当你看见另一个robot时,游戏将调用onScannedRobot()函数,可以通过事件获得那个robot的信息:名字,血量,位置,前进方向,速度等。此处简单robot仅执行fire
编译你的robot
点击Save保存你的robot
点击Compile进行编译
编译通过就可以开始战斗了,点击Battel菜单里的New,添加写好的robot
下一步?
其他
- linux永久修改dns
- windows10安装python和mongodb搭建爬虫环境
- Web服务器的工作原理
- 程序员的未来
- windows2012服务器搭建mongodb并设置远程访问
- 腾讯地图开放H5定位API,率先支持iOS10
- 写让别人能读懂的代码
- 安装serverstatus监控多台服务器状态
- Windows2012搭建我的世界(Minecraft)服务器超简单
- 高效程序员的MacBook工作环境配置
- vsftpd搭建自己的ftp服务器
- Linux一键安装Transmission电影下载到服务器
- centos安装ab工具给网站进行压力测试
- ubuntu16.04安装mongodb教程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- BigData--Hadoop技术
- TensorFlow2.X学习笔记(8)--TensorFlow高阶API之构建模型、训练模型
- dotnet 使用 AsyncQueue 创建高性能内存生产者消费者队列
- TensorFlow2.X学习笔记(7)--TensorFlow中阶API之losses、metrics、optimizers、callbacks
- 前端须知的 Cookie 知识小结
- TensorFlow2.X学习笔记(6)--TensorFlow中阶API之特征列、激活函数、模型层
- sortable.js——Vue 数据更新问题
- 【项目实战】环境搭建
- TensorFlow2.X学习笔记(5)--TensorFlow中阶API之数据管道
- TensorFlow2.X学习笔记(4)--TensorFlow低阶API之AutoGraph相关研究
- TensorFlow2.X学习笔记(3)--TensorFlow低阶API之张量
- TensorFlow2.X学习笔记(2)--TensorFlow的层次结构介绍
- 深入浅出 Vue 中的 key 值
- TensorFlow2.X学习笔记(1)--TensorFlow核心概念
- 【项目实战】ODS 层创建&数据接入