最近在上网时发现了一个叫做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时的场景:

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

我也来开发

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

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

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

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

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

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

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

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

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

ahead -- 向前移动

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

...

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

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

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

编译、部署、运行!

保存文件。

通过Compiler->Compile编译Java类

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

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

教你玩Robocode(1)相关推荐

  1. 教你玩Robocode(4)——规则系统

    理解Robocode的规则系统,你才能写出更好的坦克.许多规则在Robotcode的Roles类中进行了描述.为了便于大家理解,本文对各种规则参数进行详细叙述. 时间 robocode的时间单位为&q ...

  2. 教你玩Robocode(5)——调试技巧

    我们可以使用三种方式调试Robocode: 1. 通过输出监视程序 这是最简单高效的调试方法,在你的代码中加入System.out.println(-)或System.error.println(-) ...

  3. 教你玩 Robocode(2) —— 使用Eclipse开发Robot

    上篇文章对Robocode进行了简单的介绍.本文主要介绍如何使用Eclipse开发Robot. 主要步骤如下: 1. 在Eclipse中,创建一个Java项目. 2. 把Robocode库添加到bui ...

  4. 五一到底去哪玩?哪个景点人少又好玩?手把手教你玩Python爬虫

    "用实例和实力说话" 大家好,我是大鹏. 当客户想知道哪些景点人少又好玩,老板把这个任务交给你,作为业务人员,你选择用哪种方法解题? 以上两种工作方式都没错,但如果你是数据思维者, ...

  5. 人人皆可大数据!SACC教你玩转阿里ODPS

     人人皆可大数据!SACC教你玩转阿里ODPS [IT168 专稿]为什么我们使用搜索引擎时,不同的用户搜索同样的关键词看到的广告却不同?为什么我们到电子商务网站购物时,每次浏览同样的商品时都可以 ...

  6. echarts formatter_手把手教你玩转echarts(二)折线图

    茫茫人海中与你相遇 相信未来的你不会很差 作者:婷酱Yaaa 来源:https://juejin.im/post/5f0292d35188252e5a5dbed0 前言 哈喽,everybody,我又 ...

  7. 手把手教你玩转SOCKET模型之重叠I/O篇(下)

    http://blog.csdn.net/PiggyXP/archive/2004/09/23/114908.aspx 四.     实现重叠模型的步骤 作了这么多的准备工作,费了这么多的笔墨,我们终 ...

  8. PMCAFF微课堂 | 《社交红利2.0:即时引爆》徐志斌教你玩转社交

    回复"报名"至PMCAFF公共账号,即可进入报名环节 时间:9月15日 8:00pm (周二) 地点:PMCAFF微信群 本期,我们邀请到<社交红利>.<社交红利 ...

  9. 手把手教你玩转SOCKET模型:完成例程(Completion Routine)篇

    本文假设你已经对重叠I/O的机制已有了解,否则请先参考本系列的前一篇<手把手教你玩转SOCKET模型之重叠I/O篇>: 目录: 1.完成例程的优点 2.完成例程的基本原理 3.关于完成例程 ...

最新文章

  1. CentOS6.9中搭建FTP服务器
  2. mysql和oracle区别总结(二)
  3. jquery 图片切换插件(初版)
  4. 铁芯用matlab怎么仿真,Simulink的BLDC建模与仿真
  5. 【监听文件 多线程】使用java--WatchService监听文件 开启多线程copy文件
  6. 全面规范的软件需求可以规避项目风险
  7. 图片云存储(腾讯云 七牛云)
  8. [矩阵论] 谱半径小于1,则I-A可逆
  9. 3.23期货品种每日早盘建议
  10. c语言 库函数理解,C语言库函数理解
  11. codeforces 427C tarjan模板题
  12. WS-Trust和WS-SecureConversation
  13. h3c imc-dig 7 linux,H3C iMC iLP安装指导-7.0-5PW100
  14. 龙之谷2微信哪个服务器,龙之谷2微信区
  15. oracle 10092,Oracle诊断事件列表
  16. C语言单分支if语句形式,2 单分支if语句
  17. 氢氧化锂制备系统——吸附(除杂\提锂)+双极膜电渗析
  18. 一句话保险系列——几大险种混个脸熟
  19. 利用beautifulsoup爬取微博搜素朋友圈背景图
  20. Windows 10正式版历代记:Version 和 Build 对应关系

热门文章

  1. 入职第一个CRUD项目小结
  2. 2021年 第十二届蓝桥杯第二期校内模拟赛题解(Java版)
  3. Postfix 故障解决一例
  4. 电脑音量100后还嫌小怎么办
  5. 每天十个硬件基础小知识(7)
  6. 计算机网络这么多,开发怎么理解五层网络结构体系好?
  7. arduino入门套件学习过程-安装配置
  8. 如何锁自己的台式计算机,台式机键盘如何解锁
  9. linux_sw_64,Zabbix使用system.sw.os获取主机信息
  10. 语音识别入门第七节:语言模型(实战篇)