在
Eclipse
下开发
Robocode
(转)
2006-07-19 21:30
如果您还不知道什么是
Eclipse
,请参考这篇文章
http://www.loujing.com/Article/ShowArticle.asp?ArticleID=30
,或者网上相关资料。
如果您还不知道什么是 Robocode ,请参考这篇文章 http://www.loujing.com/Article/ShowArticle.asp?ArticleID=32 ,或者网上相关资料。
如果您还不知道什么是 Robocode ,请参考这篇文章 http://www.loujing.com/Article/ShowArticle.asp?ArticleID=32 ,或者网上相关资料。
虽然
Robocode
里自带了一个
Robot
的编辑器,不过功能略显不足,正好最近在研究
Eclipse
,我们就来看一下如何在
Eclipse
创建一个自己的机器人。
本文的开发环境: Windows XP Professional SP2 + J2SDK1.4.2_10 + Eclipse 3.1.1 + Robocode 1.0.6 ,请首先确保您的机器上安装了相关的开发包。
本文的开发环境: Windows XP Professional SP2 + J2SDK1.4.2_10 + Eclipse 3.1.1 + Robocode 1.0.6 ,请首先确保您的机器上安装了相关的开发包。
一、
Eclipse
的相关设置:
首先介绍一下,我机器上 Eclipse 的 Workspace 为 E:/mywork/Java/Exercise/Eclipse ;我机器上 Robocode 的安装路径为 C:/Program Files/robocode 。
(1) 创建项目:启动 Eclipse 后,我们单击菜单 ”File”-----“New”-----“Project” ,启动向导,我们选择 ”Java Project” ,项目名为 ”MyRobocode” 。
(2) 在项目中创建 package :然后我们在 ”Package Explorer”( 包浏览器 ) 处右键单击 ”MyRobocode” 项目,选择 ”New”-----“Package” ,创建一个新包,如下图所示:
首先介绍一下,我机器上 Eclipse 的 Workspace 为 E:/mywork/Java/Exercise/Eclipse ;我机器上 Robocode 的安装路径为 C:/Program Files/robocode 。
(1) 创建项目:启动 Eclipse 后,我们单击菜单 ”File”-----“New”-----“Project” ,启动向导,我们选择 ”Java Project” ,项目名为 ”MyRobocode” 。
(2) 在项目中创建 package :然后我们在 ”Package Explorer”( 包浏览器 ) 处右键单击 ”MyRobocode” 项目,选择 ”New”-----“Package” ,创建一个新包,如下图所示:
图
1
包的名字为
”com.loujing”
,如下图所示
(Java
建议,为了创建一个全世界独一无二的包,请将您的域名反转做为包名,且全为小写,我的域名为
loujing.com)
:
图 2
这里需要创建包的原因是:您编写的机器人需要和全世界其他程序员编写的机器人对战,所以您机器人的名字必须是唯一的。
Robocode
采用
”
包名
+
机器人类名
”
来做标识,以便区分。
(3)
导入
Robocode
类库:因为
Robocode
工具包中已替你写好了大部分的代码,如果您想创建自己的机器人,就必须将类库加入到项目中来,我们在
”Package Explorer”
处右键单击
”Robocode”
项目,选择
”Properties”(
属性
)
,如下图所示:
图 3
在打开的对话框中,我们在左边选中
”Java Build Path”
,右边选择
”Libraries”
页,单击
”Add External JARs…”
按钮,然后找到
Robocode
的安装路径
(
我机器上是
C:/Program Files/robocode)
,选中
”robocode.jar”
,确定即可,如下图所示:
图 4
(4)
创建自己的机器人:一切具备,终于开始写机器人的代码了。我们在
”Package Explorer”
中找到
”MyRobocode”
项目中
”com.loujing”
包,单击右键,选择
”New”-----
选择
”File”
,如下图所示:
图 5
在弹出的对话框中,我们输入文件名 ”AIRobot.java”( 人工智能机器人 ----- 酷吧 ) ,如下图所示:
图 6
然后,我们在
AIRobot.java
中键入如下代码:
package com.loujing;
import robocode.*; // 导入包
package com.loujing;
import robocode.*; // 导入包
public class AIRobot extends Robot //
继承自
Robot
类
{
public void run() { // 必须的方法,确定机器坦克的基本行为
while(true) {
turnGunRight(360); // 右转炮管 360
}
}
{
public void run() { // 必须的方法,确定机器坦克的基本行为
while(true) {
turnGunRight(360); // 右转炮管 360
}
}
public void onScannedRobot(ScannedRobotEvent e) { //
当扫描到其它机器坦克时
ahead(100); // 前进 100
turnLeft(90); // 机器坦克左转 90
}
}
是不是出乎意料的简单,我们几乎没写几行代码吧,一个基本的框架就好了。另外,在 Eclipse 里,当您把鼠标移到某个标识符上面时,会实时显示 Robocode 的 API 帮助,比如下图就显示了 onScannedRobot 方法说明:
ahead(100); // 前进 100
turnLeft(90); // 机器坦克左转 90
}
}
是不是出乎意料的简单,我们几乎没写几行代码吧,一个基本的框架就好了。另外,在 Eclipse 里,当您把鼠标移到某个标识符上面时,会实时显示 Robocode 的 API 帮助,比如下图就显示了 onScannedRobot 方法说明:
图 7
二、 Robocode 的相关设置:
当我们把 AIRobot.java 编译之后, AIRobot.class 就产生了,下面我们来看看如何在 Robocode 里调用到您的 *.class 文件呢,您有两种方法:
(1) 将产生的 *.class 的文件复制到 Robocode 安装路径下的 robots 下,比如我会将 AIRobot.class 拷贝到 C:/Program Files/robocode/robots 下即可。
(2) 其实还有一种更简单的方法, Robocode 对 Eclipse 的支持很好,我们可以直接在 Robocode 里设置好路径。启动 Robocode ,选择 ”Option” 菜单 ----- 单击 ” Preferences” ,在打开的对话框中选择 ”Development Options” 页,把您之前建的 Eclipse 项目的路径填入,单击 ”Finish” 按钮即可 ( 我刚才建的项目路径是 E:/mywork/Java/ Exercise/Eclipse/MyRobocode) ,如下图所示:
图
8
另外,在
”View Options”
页,有一个复选框
” Visible Scan Arcs”
,您可以把它选上,这样,机器人扫描时就可以看到射线状的雷达了,很酷啊。
三、测试自己的 Robot :一切准备就绪了,现在我们来测试一下我们写的那个弱智机器人吧。
启动 Robocode ,选择 ”Battle” 菜单 ----- 单击 ”New”( 新建一个战斗 ) ,打开的对话框如下图所示:
图 9
在
Packages
列表中,我们看到所有的包,其中有我们之前创建的
com.loujing
包;在
Robots
列表中,会列出所有的机器人,其中也有我们创建的
AIRobot
。我们利用
Add
按钮增加两个
AIRobot(
当然您也可以多增加几个机器人进去,如果您只选择一个,系统会提示您不能战斗,您就只能观察一个机器人的运动了
)
,在
Selected Robots
列表中出现的就是您现在选择参加战斗的机器人了。
Number of Rounds 表明战斗的回合数,默认是 10 回合;当一切选好,我们单击 ”Start Battle” 按钮,您就会看到如下图所示:
Number of Rounds 表明战斗的回合数,默认是 10 回合;当一切选好,我们单击 ”Start Battle” 按钮,您就会看到如下图所示:
图 10
中间区域就是站场,下面的按钮可以随时暂停、恢复、停止比赛。您可以仔细观察一下这两个
AIRobot
,是不是如我们之前所写,开始时先右转炮管
360
度,而当扫描到另一个机器人的时候,就先往前走
100
,然后向左转
90
度,所有的行动都是事先由您编程实现的。
现在,您可以修改一下原来的
AIRobot.java
了,比如在
onScannedRobot
方法里增加一句
” fire(1);”
,意思显而易见,当扫描到其它机器人的时候,就开火。
您可以到 Robocode 的安装路径下的 robots 文件夹下,去打开 *.java 文件,看一下别人的机器人程序是怎么写的,或者去网上下载;如果对库函数有疑问,您可以单击 Robocode 程序的 Help 菜单,选择 ”Robocode API” ,或者直接双击安装路径下的 javadoc/index.html 打开帮助。您需要重点关心的是 Robot 类,看一下其中有哪些控制机器人的方法,以及该如何使用它们,如下
您可以到 Robocode 的安装路径下的 robots 文件夹下,去打开 *.java 文件,看一下别人的机器人程序是怎么写的,或者去网上下载;如果对库函数有疑问,您可以单击 Robocode 程序的 Help 菜单,选择 ”Robocode API” ,或者直接双击安装路径下的 javadoc/index.html 打开帮助。您需要重点关心的是 Robot 类,看一下其中有哪些控制机器人的方法,以及该如何使用它们,如下
图
11
怎么样,您是不是也来了兴趣了,也来创建自己的第一个机器人吧,如果您能够在特定时刻让机器人做出正确的反应,比如左右躲避、开火、遇墙回头等等,那么也算有人工智能了吧,呵呵。