利用Jython开发Robocode机器人

 
(转载请注明来源于 金庆的专栏)

先用Python写个简单的机器人:
from  robocode  import   *  

class  SampleBlaze(Robot): 
   
def  run(self): 
      
while   1
         self.ahead(
100 )
         self.back(
100 )

编译为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机器人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值