robocode调试技巧
robocode调试技巧
最初玩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
robocode调试技巧相关推荐
- 转:Python 代码调试技巧
Python 代码调试技巧 转载于:https://www.cnblogs.com/kira2will/p/4254754.html
- 你可能不知道的 IDEA 高级调试技巧
作者:十光年 www.cnblogs.com/jun1019/p/9741224.html 一.条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值. 参考上图, ...
- Javascript调试技巧整理
整理一下网上看到的实用调试技巧! 1. 不要使用alert 首先,alert只能打印出字符串,如果打印的对象不是String,则会调用toString()方法将该对象转成字符串(比如转成[object ...
- iphone XCode调试技巧之EXC_BAD_ACCESS中BUG解决
http://mobile.51cto.com/iphone-279455.htm XCode调试技巧之EXC_BAD_ACCESS中BUG解决是本文要介绍的内容,在iphone开发的时候EXC_BA ...
- Flutter调试技巧总结——高效开发的秘密
刚开始学前端的时候看到大家都是用的console.log()作为调试的手段,也可以说,很多人只会用console.log().在学习Flutter开发app的时候,我就在思考,除了使用print()来 ...
- [Cocoa]XCode的一些调试技巧
XCode的一些调试技巧 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 XCode 内置GDB,我 ...
- 你所不知道的 Android Studio 调试技巧
Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug,进而解决,可是我们的看家本领.正所谓,工欲善其事必先利其器,和其他开发工具一样, ...
- Postman 调试技巧
Postman 调试技巧 最为一个最基础的猿,我相信你已经掌握的一般接口使用Postman请求了. 如果你还在为下面问题发愁,你可以读下去. 1.后台验证通过请求header中的动态token. 2. ...
- 反调试技巧总结-原理和实现(1)(2)(3)(4)(5)(6)......
反调试技巧总结-原理和实现 -------------------------------------------------------------------------------------- ...
最新文章
- Twisted入门教程(3)
- 马斯克矩阵模拟错了?这个试验证明人类不是「缸中之脑」
- ansible企业级自动化运维工具
- mysql unix_timestamp 格式化_FROM_UNIXTIME 格式化MYSQL时间戳函数_MySQL
- Nginx 实现网站 http、https 配置
- 使用netcat的正向 / 反向shell
- HTTP权威协议笔记-6.代理
- Dism++ 一款传说中的系统工具,使用简介
- ASP.NET 路由实现页面静态化(附在线Demo和Source)
- CFA一级知识点总结
- 采购入库单部分结算时是否自动暂估 参数 是的情况下
- IndentationError: expected an indented block缩进没问题但是出错
- 3-8 B: 分离LZY的字符串
- CSS3——制作带动画效果的小图片
- Debian 查看 硬盘 SD卡 容量 内存大小
- typora:一些常用数学符号
- SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)
- 索爱R5录音笔性能评测介绍
- python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
- 计算机工程与应用 【两次外审,另请专家再审也可以录】