(文章转载自http://www.loujing.com/article/ShowArticle.asp?ArticleID=33)
如果您还不知道什么是Eclipse,请参考这篇文章http://www.loujing.com/Article/ShowArticle.asp?ArticleID=30,或者网上相关资料。
如果您还不知道什么是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,请首先确保您的机器上安装了相关的开发包。
一、 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”,创建一个新包,如下图所示:
图1
包的名字为”com.loujing”,如下图所示(Java建议,为了创建一个全世界独一无二的包,请将您的域名反转做为包名,且全为小写,我的域名为loujing.com):
图2
(3) 导入Robocode类库:因为Robocode工具包中已替你写好了大部分的代码,如果您想创建自己的机器人,就必须将类库加入到项目中来,我们在”Package Explorer”处右键单击”Robocode”项目,选择”Properties”(属性),如下图所示:
图3
图4
(4) 创建自己的机器人:一切具备,终于开始写机器人的代码了。我们在”Package Explorer”中找到”MyRobocode”项目中”com.loujing”包,单击右键,选择”New”-----选择”File”,如下图所示:
图5
在弹出的对话框中,我们输入文件名”AIRobot.java”(人工智能机器人-----酷吧),如下图所示:
图6
package com.loujing;
import robocode.*; //导入包
public class AIRobot extends Robot //继承自Robot类
{
public void run() { //必须的方法,确定机器坦克的基本行为
while(true) {
turnGunRight(360); //右转炮管360
}
}
public void onScannedRobot(ScannedRobotEvent e) { //当扫描到其它机器坦克时
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
三、测试自己的Robot:一切准备就绪了,现在我们来测试一下我们写的那个弱智机器人吧。
启动Robocode,选择”Battle”菜单-----单击”New”(新建一个战斗),打开的对话框如下图所示:
图9
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类,看一下其中有哪些控制机器人的方法,以及该如何使用它们,如下图所示:
图11
怎么样,您是不是也来了兴趣了,也来创建自己的第一个机器人吧,如果您能够在特定时刻让机器人做出正确的反应,比如左右躲避、开火、遇墙回头等等,那么也算有人工智能了吧,呵呵。