教你玩Robocode(1)

最近在上网时发现了一个叫做Robocode的游戏。最近我已经对它上瘾了。Robocode官方网站上对Robocode的介绍:

Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.(大意是Robocode是一个编程游戏,玩家目标是开发自己的坦克去对抗别人开发的坦克。)

Robocode十分容易上手,步骤无非是: 下载 - 安装 - 开发 - 运行。

 

下载:

http://sourceforge.net/projects/robocode/files/

我下载的是robocode-1.7.2.0-Beta-2-setup.jar

 

安装:

安装Robocode之前,要先安装JDK

安装JDK后直接双击下载下来的jar文件就可以开始安装了。如果这样不行,可以在进入命令行,并转到jar文件所在目录,并执行下面命令:

java -jar robocode-1.7.2.0-Beta-2-setup.jar

注意上命令中-jar参数中指定的是你下载jar包的文件名,可能会因为你的版本的不同而不同。

 

先玩一把

安装好后,你可以在桌面上看到游戏的快捷方式。还等什么,双击运行!

Robocode预置了一些样例坦克供你娱乐和参考。不如让他们互相PK下,感受感受。在Robocode程序主页面菜单中选择Battle->new,以便创建一个战役:

创建战役

New Battle 窗口中,选择一些坦克

选择参战坦克

上图中最左边是坦克分类(是按照包分类的),中间是该分类中包含的坦克,通过“Add”或“Add All”按钮添加几个坦克后,点击Start Battle按钮,它们之间就可以PK了!但是要小心哦,不要一次添加太多坦克,否则你的Java虚拟机会内存溢出的,呵呵。

下面是PK时的场景:

互相PK

 

该面板上有一些按钮,大家可以自己试试,通过调节下方的滑块可以改变游戏速度。

 

我也来开发

开发第一个坦克只需要花费你不到一分钟时间。但是要开发一个真正NB的坦克,可能要花费你好几月的时间。我们就从最简单的开始吧。

Robocode集成了一个简单的代码编辑器,可以帮助你创建坦克类,并且编译和部署。通过Robot->Editor打开编辑器:

打开编辑器

然后在编辑器中创建一个新的坦克:

new Robot

设置你的坦克名称(类名):

指定坦克名称

设置你坦克所在的包(因为我们正在创建一个Java类,所以最好指定报名):

指定包名

下面是自动生成的坦克代码:

自动生成的坦克代码

如上图所示,编辑器为我们创建了一个继承自Robot类的类,并覆盖了其中的一些方法:

run()方法: 因为每个坦克实例对象都对应一个线程,所以,我们在run方法中定制坦克的主要行为

   在run方法中,我们当然可以调用父类提供的一些方法,以便让我们的坦克动起来!如:

   ahead -- 向前移动

   turnGunRight -- 炮塔向右旋转指定角度

   ...

onXXX方法: 当某些事件发生时,该方法会得到执行

    编辑器为我们创建的坦克类覆盖了onScannedRobot方法和onHitByBullet方法,这样,我们可以编写当坦克发现敌情和被别人打中时所采取的动作。

   对于如何更好的实现自己的坦克,我将在后面的文章中进行介绍。

 

编译、部署、运行!

保存文件。

通过Compiler->Compile编译Java类

关闭编辑器,再次创建新战役,你可以看到你创建的第一个坦克了:

看到了吧,你自己创建的坦克

 

后续文章我会介绍一些更深入的技术!

 

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值