教你玩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时的场景:
该面板上有一些按钮,大家可以自己试试,通过调节下方的滑块可以改变游戏速度。
我也来开发
开发第一个坦克只需要花费你不到一分钟时间。但是要开发一个真正NB的坦克,可能要花费你好几月的时间。我们就从最简单的开始吧。
Robocode集成了一个简单的代码编辑器,可以帮助你创建坦克类,并且编译和部署。通过Robot->Editor打开编辑器:
然后在编辑器中创建一个新的坦克:
设置你的坦克名称(类名):
设置你坦克所在的包(因为我们正在创建一个Java类,所以最好指定报名):
下面是自动生成的坦克代码:
如上图所示,编辑器为我们创建了一个继承自Robot类的类,并覆盖了其中的一些方法:
run()方法: 因为每个坦克实例对象都对应一个线程,所以,我们在run方法中定制坦克的主要行为
在run方法中,我们当然可以调用父类提供的一些方法,以便让我们的坦克动起来!如:
ahead -- 向前移动
turnGunRight -- 炮塔向右旋转指定角度
...
onXXX方法: 当某些事件发生时,该方法会得到执行
编辑器为我们创建的坦克类覆盖了onScannedRobot方法和onHitByBullet方法,这样,我们可以编写当坦克发现敌情和被别人打中时所采取的动作。
对于如何更好的实现自己的坦克,我将在后面的文章中进行介绍。
编译、部署、运行!
保存文件。
通过Compiler->Compile编译Java类
关闭编辑器,再次创建新战役,你可以看到你创建的第一个坦克了:
后续文章我会介绍一些更深入的技术!
教你玩Robocode(1)相关推荐
- 教你玩Robocode(4)——规则系统
理解Robocode的规则系统,你才能写出更好的坦克.许多规则在Robotcode的Roles类中进行了描述.为了便于大家理解,本文对各种规则参数进行详细叙述. 时间 robocode的时间单位为&q ...
- 教你玩Robocode(5)——调试技巧
我们可以使用三种方式调试Robocode: 1. 通过输出监视程序 这是最简单高效的调试方法,在你的代码中加入System.out.println(-)或System.error.println(-) ...
- 教你玩 Robocode(2) —— 使用Eclipse开发Robot
上篇文章对Robocode进行了简单的介绍.本文主要介绍如何使用Eclipse开发Robot. 主要步骤如下: 1. 在Eclipse中,创建一个Java项目. 2. 把Robocode库添加到bui ...
- 五一到底去哪玩?哪个景点人少又好玩?手把手教你玩Python爬虫
"用实例和实力说话" 大家好,我是大鹏. 当客户想知道哪些景点人少又好玩,老板把这个任务交给你,作为业务人员,你选择用哪种方法解题? 以上两种工作方式都没错,但如果你是数据思维者, ...
- 人人皆可大数据!SACC教你玩转阿里ODPS
人人皆可大数据!SACC教你玩转阿里ODPS [IT168 专稿]为什么我们使用搜索引擎时,不同的用户搜索同样的关键词看到的广告却不同?为什么我们到电子商务网站购物时,每次浏览同样的商品时都可以 ...
- echarts formatter_手把手教你玩转echarts(二)折线图
茫茫人海中与你相遇 相信未来的你不会很差 作者:婷酱Yaaa 来源:https://juejin.im/post/5f0292d35188252e5a5dbed0 前言 哈喽,everybody,我又 ...
- 手把手教你玩转SOCKET模型之重叠I/O篇(下)
http://blog.csdn.net/PiggyXP/archive/2004/09/23/114908.aspx 四. 实现重叠模型的步骤 作了这么多的准备工作,费了这么多的笔墨,我们终 ...
- PMCAFF微课堂 | 《社交红利2.0:即时引爆》徐志斌教你玩转社交
回复"报名"至PMCAFF公共账号,即可进入报名环节 时间:9月15日 8:00pm (周二) 地点:PMCAFF微信群 本期,我们邀请到<社交红利>.<社交红利 ...
- 手把手教你玩转SOCKET模型:完成例程(Completion Routine)篇
本文假设你已经对重叠I/O的机制已有了解,否则请先参考本系列的前一篇<手把手教你玩转SOCKET模型之重叠I/O篇>: 目录: 1.完成例程的优点 2.完成例程的基本原理 3.关于完成例程 ...
最新文章
- CentOS6.9中搭建FTP服务器
- mysql和oracle区别总结(二)
- jquery 图片切换插件(初版)
- 铁芯用matlab怎么仿真,Simulink的BLDC建模与仿真
- 【监听文件 多线程】使用java--WatchService监听文件 开启多线程copy文件
- 全面规范的软件需求可以规避项目风险
- 图片云存储(腾讯云 七牛云)
- [矩阵论] 谱半径小于1,则I-A可逆
- 3.23期货品种每日早盘建议
- c语言 库函数理解,C语言库函数理解
- codeforces 427C tarjan模板题
- WS-Trust和WS-SecureConversation
- h3c imc-dig 7 linux,H3C iMC iLP安装指导-7.0-5PW100
- 龙之谷2微信哪个服务器,龙之谷2微信区
- oracle 10092,Oracle诊断事件列表
- C语言单分支if语句形式,2 单分支if语句
- 氢氧化锂制备系统——吸附(除杂\提锂)+双极膜电渗析
- 一句话保险系列——几大险种混个脸熟
- 利用beautifulsoup爬取微博搜素朋友圈背景图
- Windows 10正式版历代记:Version 和 Build 对应关系