(转载请注明来源于 金庆的专栏)
先用Python写个简单的机器人:








编译为jar包,注意要指定package名,
jythonc -a -p "org" -j "SampleBlaze1.0.jar" "SampleBlaze.py"
打包成jar是为了从jython.jar从提取相关类。参考:
其实jython2.2b2类提取可能有问题,部份类会无法提取到结果包中。
如果碰到jython类缺少,需要手工提取。
将SampleBlaze1.0.jar解压,手工加入缺少的类,并编写一个
SampleBlaze.properties
放在org目录下。
最好由robocode编写一个简单的机器人并打包,从中可提取properties文件,稍加修改就行。
例如:#Robot Properties
#Fri May 25 21:33:02 CST 2007
robot.java.source.included=true
robot.version=1.6
robot.description=description.....
robocode.version=1.3
robot.author.name=Jin Qing
robot.classname=org.SampleBlaze
再打成jar包。然后就可以由robocode导入了。第一次读取机器人会比较费时。
不过总算能看到python写的机器人了。
不过还是有点问题,每次第一局,机器人总是处于disable状态,第二局开始才正常。
*sys-package-mgr*: The java security manager isn't allowing access to the package cache dir, 'cachedir/packages'
因为jython要读写python.home下的cachedir/package目录,而robocode禁止这种操作。
不知道为什么第二局就好了?
看来只能在自己机器上玩玩行,要进行国际比赛还是只能用纯Java.
如果设置robocode参数-D NOSECURITY=true,就不需要打包,直接将jython.jar添加到classpath,就可以任意使用jython了。
利用Jython开发Robocode机器人