会员登录 | 注册

来去留技术信息资源

来去留技术信息资源
来去留网 > 来学技术 > 用游戏来学习java技术(robocode攻略)

用游戏来学习java技术(robocode攻略)

2012-02-08 14:10来源:来去留知道网发布者:laiquliu 查看:

robocode(用游戏来学习java技术还是用java来玩游戏?)
用你的java编程技术来玩游戏吧!不会java?那就用游戏来学习java吧!
什么是robocode?

其实我对机器人一直很感兴趣。我记得在我还是初中的时候,就知道 aplleⅡ上有一个程序,用它来编写简单的机器人程序,然后相互作战。当时自己还完全不懂编程,总是向往着,那神秘的编程高手玩的游戏是怎样的?

robocode就是这样一个东西,但是更好一些。它是一个基于java语言的机器人作战游戏。 其代码的编写和建模都不错,玩起来也很有趣。robocode是很多"编程游戏"软件中的一个,他们共同的特征是在没有用户输入的状态下许多机器人在一个及竞技场中比赛,用户必须编制一个高效的机器人来取胜。robocode特别的像一场机器人坦克的大混战,它们互相开火直到只剩一个胜利者。程序完全是由java编写,并且玩家必须要创造一个继承自robot类的类。

你希望在玩游戏的过程中、在闪躲炮弹、执行精确攻击的演练中学会java编程的 继承、多态性、事件处理以及内部类这些内容吗?robocode 这个游戏为全世界的 java 开发者实现这个愿望,它把游戏风潮变成了教学工具,人们对它的上瘾程度令人吃惊。下面,我参考网友 sing li 以前写的文章,让我们一起来拆解 robocode,同时着手建造属于自己的、定制的、小而精悍的战斗机器吧!

robocode 是一个很容易使用的机器人战斗仿真器,可以在所有支持 java 2 的平台上运行。您创建一个机器人,把它放到战场上,然后让它同其他开发者们创建的机器人对手拼死战斗到底。robocode 里有一些预先做好的机器人对手让你入门,但一旦您不再需要它们,就可以把您自己创建的机器人加入到正在世界范围内形成的某个联盟里去和世界最强手对阵。

每个 robocode 参加者都要利用 java 语言元素创建他或她的机器人,这样就使从初学者到高级黑客的广大开发者都可以参与这一娱乐活动。初级的 java 的开发者们可以学习一些基础知识:调用 api 代码、阅读 javadoc、继承、内部类、事件处理等等。高级开发者们可以在构建“最优品种”的软件机器人全球竞赛中提高他们的编程技巧。在本文中,我们将介绍 robocode,并指导您从构建您平生第一个 robocode 机器人开始征服世界。我们还将看一下迷人的“后台”机制,正是它使得 robocode 起作用。

首先当然是下载和安装 robocode 啦

robocode 是 mathew nelson 的智慧之作,他是 ibm internet 部门 advanced technology 的软件工程师。现在robocode的主页已经搬迁到sourceforge这个开源网站上了,大家可以在这里下载robotcode的最新版 到3月21日为止最新版本是1.0.7,大小为3.2m。
好了,下载回来后当然还要在你的电脑上安装java运行库才行的哦~地址是
1.先安装好java运行库,好像需要重启的?忘记了……
2.把下载回来的robocode-setup.jar复制到c盘根目录
3.打开 开始菜单 的“运行”,输入 java -jar "c:\robocode-setup.jar" 进行安装
4.安装完后就可以在开始菜单中找到robocode的菜单了,来~我们进入战场咯!

安装完成后,您也可以通过 shell 脚本(robocode.sh)、批处理文件(robocode.bat)或桌面上的图标来启动 robocode 系统。此时,战场将会出现。在此,您可以通过菜单调用 robot editor 和 compiler。

robocode 系统组件
当您启动 robocode 时,将看到两个gui窗口,这两个窗口构成了 robocode 的 ide:

图 1. robocode ide


战场是机器人之间进行战斗直至分出胜负的场地。主要的仿真引擎被置于其中,并且允许您在这里创建战斗、保存战斗以及打开新建的或现有的战斗。通过界面区域内的控件,您可以暂停或继续战斗、终止战斗、消灭任何机器人个体或获取任何机器人的统计数据。此外,您可以在此屏幕上激活 robot editor。

robot editor 是一个定制的文本编辑器,它可以用于编辑生成机器人的 java 源文件。在它的菜单里集成了 java 编译器(用于编译机器人代码)以及定制的 robot 打包器。由 robot editor 创建并成功编译的所有机器人都会处于战场上一个部署就绪的位置。

robocode 里的每个机器人都由一个或多个 java 类构成。这些类可以被压缩成一个 jar 包。为此,robocode 的最新版本提供了一个可以在战场 gui 窗口中激活的“robot packager”。

对 robocode 机器人的详细分析
在写这篇文章时,robocode 机器人是一个图形化的坦克。图 2 是一个典型的 robocode 机器人的图解。

图 2. 对 robocode 机器人的详细分析

请注意,机器人有一门可以旋转的炮,炮上面的雷达也是可以旋转的。机器人坦克车(vehicle)、炮(gun)以及雷达(radar)都可以单独旋转,也就是说,在任何时刻,机器人坦克车、炮以及雷达都可以转向不同的方向。缺省情况下,这些方向是一致的,都指向坦克车运动的方向。

我们先不考虑怎么编程来实现机器人战斗,我们先用自带的例子机器人来一场战斗吧

单击菜单上的battle,然后选new,出现了new battle对话框

图 3. new battle 对话框

左边的框是packages,相当于一个文件夹,里面包含多个robots(机器人)
我们选择sample这个包,里面有corners、crazy、fire等等很多例子的机器人了
随便选择几个你喜欢的,然后按add添加到selected robots框,进了这个框就是准备要上战场的机器人了~选择好后,按 startbattle 开战吧!

现在你已经知道怎样可以使用机器人去战斗并且也构建好你的战场了,好,下面我们学习怎样来编写属于自己的战斗机器人!!

战场是机器人之间进行战斗直至分出胜负的场地。主要的仿真引擎被置于其中,并且允许在这里创建战斗、保存战斗以及打开新建的或现有的战斗。通过界面区域内的控件,可以暂停或继续战斗、终止战斗、消灭任何机器人个体或获取任何机器人的统计数据。此外,我们可以在此屏幕上的robot菜单打开 editor,就是我们机器人的代码编辑器了!robot editor 是一个定制的文本编辑器,它可以用于编辑生成机器人的 java 源文件。在它的菜单里集成了 java 编译器(用于编译机器人代码)以及定制的 robot 打包器。由 robot editor 创建并成功编译的所有机器人都会处于战场上一个部署就绪的位置。我们就是要在这里编写机器人了。
选择“file”》“new”》“robot”来新建一个机器人。它会首先要你输入这个机器人的名字(注意名字首字母要大写哦),然后要你输入包的名字(就是保存这个机器人的文件夹名称),这样就生成了一个蠢蠢的机器人xforce的代码了~因为我们还没替它加上人工智能,呵呵!

(责任编辑:laiquliu)

关注技术,信息,资源,扫描来去留网微信二维码交流。

来去留我李俊

搜索

------分隔线----------------------------
相关栏目

热点推荐
来去留技术信息资源
来去留网为您提供平台咨询交流学习方法及各类热门技术;电器,服装,保健,行业快讯等二十几个类别的资讯