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调试技巧相关推荐

  1. 转:Python 代码调试技巧

    Python 代码调试技巧 转载于:https://www.cnblogs.com/kira2will/p/4254754.html

  2. 你可能不知道的 IDEA 高级调试技巧

    作者:十光年 www.cnblogs.com/jun1019/p/9741224.html 一.条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值. 参考上图, ...

  3. Javascript调试技巧整理

    整理一下网上看到的实用调试技巧! 1. 不要使用alert 首先,alert只能打印出字符串,如果打印的对象不是String,则会调用toString()方法将该对象转成字符串(比如转成[object ...

  4. iphone XCode调试技巧之EXC_BAD_ACCESS中BUG解决

    http://mobile.51cto.com/iphone-279455.htm XCode调试技巧之EXC_BAD_ACCESS中BUG解决是本文要介绍的内容,在iphone开发的时候EXC_BA ...

  5. Flutter调试技巧总结——高效开发的秘密

    刚开始学前端的时候看到大家都是用的console.log()作为调试的手段,也可以说,很多人只会用console.log().在学习Flutter开发app的时候,我就在思考,除了使用print()来 ...

  6. [Cocoa]XCode的一些调试技巧

    XCode的一些调试技巧 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 XCode 内置GDB,我 ...

  7. 你所不知道的 Android Studio 调试技巧

    Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug,进而解决,可是我们的看家本领.正所谓,工欲善其事必先利其器,和其他开发工具一样, ...

  8. Postman 调试技巧

    Postman 调试技巧 最为一个最基础的猿,我相信你已经掌握的一般接口使用Postman请求了. 如果你还在为下面问题发愁,你可以读下去. 1.后台验证通过请求header中的动态token. 2. ...

  9. 反调试技巧总结-原理和实现(1)(2)(3)(4)(5)(6)......

    反调试技巧总结-原理和实现 -------------------------------------------------------------------------------------- ...

最新文章

  1. Twisted入门教程(3)
  2. 马斯克矩阵模拟错了?这个试验证明人类不是「缸中之脑」
  3. ansible企业级自动化运维工具
  4. mysql unix_timestamp 格式化_FROM_UNIXTIME 格式化MYSQL时间戳函数_MySQL
  5. Nginx 实现网站 http、https 配置
  6. 使用netcat的正向 / 反向shell
  7. HTTP权威协议笔记-6.代理
  8. Dism++ 一款传说中的系统工具,使用简介
  9. ASP.NET 路由实现页面静态化(附在线Demo和Source)
  10. CFA一级知识点总结
  11. 采购入库单部分结算时是否自动暂估 参数 是的情况下
  12. IndentationError: expected an indented block缩进没问题但是出错
  13. 3-8 B: 分离LZY的字符串
  14. CSS3——制作带动画效果的小图片
  15. Debian 查看 硬盘 SD卡 容量 内存大小
  16. typora:一些常用数学符号
  17. SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)
  18. 索爱R5录音笔性能评测介绍
  19. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
  20. 计算机工程与应用 【两次外审,另请专家再审也可以录】

热门文章

  1. JVM问题分析调优经验
  2. python计算量比指标
  3. 自学SQL网习题题解:0-12(带内容解析!)
  4. 尝试搭建本地语音转文字系统[1]
  5. 基于元胞自动机的城市规划
  6. 新项目导入的时候遇到的问题
  7. sqlserver用sql语句来进行外键约束的修改
  8. web漏洞 云盾_云盾WAF实现虚拟补丁——记一起Web漏洞应急响应
  9. 半年10倍的股票秘诀
  10. 讨论:报表的未来在哪里?