最初玩robocode的朋友可能会埋怨robocode不好编辑、调试,其实虽然robocode做得很简单,可是它还是给我们提供了很多扩充的功能。只要善于利用,调试robocode还是很方便的。
技巧之一:定义自己的robots路径
假设你的robocode是安装在x: /robocode-setup下,那么默认robot代码的存放位置是在x: /robocode-setupextract/robots下面,里面可以放置机器人代码的jar包(如从网上下载的高手的机器人源码大多都已经打成jar包了,直接把这些jar文件丢在x: /robocode-setupextract/robots这个目录就可以看他们表演了),也可以建立自己的package目录,直接把代码以*.java的形式存放。例如:我在robots目录下面建立一个freedebug目录,我自己写的机器人*.java就直接放在x:/robocode-setupextract/robots/freedebug里面,这是robot默认的管理robot代码的方式。不过,一般我不会这样做——因为我一般不用robocode自带编辑器编写机器人的。我一般都用自己的IDE编辑、编译,所以,我也把自己的机器人源码放在我的java工程的目录里,如:x:/SourceJava/robots里,只要在robot主窗体的菜单Options->Preferences->Development Options里面把x:/SourceJava/robots填进去就robocode就能够找到我的机器人了。如果有多个机器人路径,可以用分号隔开,如x:/SourceJava/robots;x:/SourceJavadownload_robots 。
技巧之二:用自己的编辑器编译机器人
如果想用自己的IDE编译机器人,很简单,只要把robocode.jar加到系统的cLASSPATH的环境变量里就行了。例如我的CLASSPATH是这样设置的:
CLASSPATH=.;%JAVA_HOME%/lib/tools.jar;x:/robocode-setupextract/robocode.jar
这样就可以在自己的IDE中编译调试机器人代码了。
如果你不明白CLASSPATH怎么设置,请参考拙著《Windows下JAVA环境变量的设置祥解》。如果你是JAVA新手,不知道选用哪种IDE来编写机器人比较好,请参考拙著《用TextPAD构建你的JAVA IDE》
技巧之三:使用自定义的类库
我想你一定发现了,在机器人源码中插入System.out.println();语句可以把运行时的变量输出到一个applet窗口中察看,你也一定会觉得经常写System.out.println();来输出变量很累,我的做法(*注1)是,自己定义一个类Class P,用来简化输出,下面是我的Class P的一个简化版本:
//:freedebug:tools:P.java
package freedebug.tools;
public class P {
public static void rint(String s) {
System.out.print(s);
}
public static void rintln(String s) {
System.out.println(s);
}
}
:~
这样,在我的机器人代码中可以使用P.rintln()来代替System.out.println()了,是不是很方便?如果你要编写很多机器人,最好的方法不是把Class P代码复制到你的每一个机器人源码中,而是向我上面做的那样,把它单独放在一个java文件里,在freedebug目录下在建立一个tools目录,把P.java放在其中,我放的位置如下:
x:/SourceJava/robots/freedebug/tools/P.java
这样,在我的机器人代码里面就可以通过import freedebug.tools.*;来引用我的工具类了。当然这只是个例子,你可以把它推广起来,建立一整套的自己的工具类库,很方便的,嘿嘿。
上班偷偷写了一个小时了,工作去了,嘿嘿,下次再聊!
--------------------
注1:此方法并非我原创,是Bruce Eckel在《Think in Java II》里面讲述的,此处仅是引用而已。
freedebug 于2003-12-19