Robocode介绍

来源:互联网 发布:计算机端口的作用 编辑:程序博客网 时间:2024/04/29 21:49
作者:悉尼网站 译者:tom204    
原文:http://www.ug.cs.usyd.edu.au/~csled/biwf/robocode/intro.html

此文仅供老师使用,并没有太多对学生有用的信息。
Robocode是什么?
Robocode是很多"编程游戏"软件中的一个,他们共同的特征是在没有用户输入的状态下许多机器人在一个及竞技场中比赛,用户必须编制一个高效的机器人来取胜。

Robocode特别的像一场机器人坦克的大混战,它们互相开火直到只剩一个胜利者。程序完全是由JAVA编写,并且玩家必须要创造一个继承自Robot类的类(http://robocode.alphaworks.ibm.com/docs/robocode/index.html),覆盖(overriding)Robot类的方法来提供战斗策略和处理一系列定义好的事件,比如去成功地撞另一辆坦克。

这里有些关于Robocode的文章(http://robocode.net/articles.html)。

其它的一些"编程游戏"
有许多软件是基于这种思想的,Robocode它自己就是来源于机器人大战Robot Battle(http://www.robotbattle.com/)这款软件。其它的编程游戏还包括:
· AI Fleet Commander
· AI Wars
· AT-Robots
· Bolo
· BotWarz
· C-Robots
· Cadaver
· CodedWombat
· Colobot
· Corewars
· CybWar
· GRobots
· DroidBattles
· Karel the Robot
· Mindrover
· IntelliBots
· Omega
· RealTimeBattle
· Robot Wars
· RoboWar
· SRobots
· VBRobots
就我所看过的"编程游戏",Robocode是最适合教学的。

· 它非常容易上手,是特别为教学而设计的
· 它具有平滑且吸引人的图形
· 它完全地将编辑器,编译器和运行环境集成在了一起。
· 它是由JAVA编写的,且JAVA非常适合当作初学语言

采用"编程游戏"进行教学
这份资料是为更容易地采用Robocode作为计算机教学工具而设计的,采用"编程游戏"进行教学的优点是:
· 最终的成果是非常让人有成就感的,因为我们很容易就可以制造出一个简单的机器人并立即看到它在屏幕上和别的及机器人打仗。当你第一次运行Robocode,第一次创建一个机器人,Robocode自带编辑器会自动生成一个写好部分代码的类,并且它已经继承了Robot类,你只要在上面小小地修改一下,并且点几个按钮,你的机器人就会和其他已经编好的机器人大战几回合了。
· 开发环境已经和比赛场地集成起来了,省去了不必要的麻烦。一般情况下要想编程,你首先得下载,安装和配置一个看起来很复杂的编程环境。就我的经验,教授别人多半得手把手地教他们整个环境的安装并且还有振振有词:“别担心,我做得步骤都很容易学,只要点一下这里,然后输入你的程序,接着点这里来编译运行它“。而这个工具不需要再手把手地教了
· Robocode提供了容易理解的类、继承、事件的例子程序。如果是初学,这些概念会比较难理解。因为要通过代码来理解面向对象的强大魅力是要花费很长时间的。由于类经常代表抽象的实体,所以这些例子的帮助并不大。Robocode提供了非常清晰的类的例子,比如Robot和Bullet,以及像RobotDeathEvent, HitWallEvent这样的事件。学生能够真正在屏幕上看到这些对象。
· 尽管在我看来Robocode不是教授JAVA语言最好的工具,但是通过非正式调查,Robocode的用户们还是把Robocode当作不错的学习助手。

怎样把Robocode当作一个教学工具
使用Robocode并不能真正地教会JAVA。尽管JAVA的初学者能从使用Robocode上获益,但据一项非正式调查显示大部分使用者是先掌握了JAVA才使用Robocode的。我建议把它当作一个面向对象的学习资料,而不要用它来教JAVA(至少不要在教学的开始阶段)。尽管它可以用来教授语言,但它会给初学者增添很多不必要的麻烦。已经掌握JAVA基础知识的学生可以安全地转向Robocode.
这篇指南虽然已经做了排序,但因为它们之间没有必须的依赖关系,所以可以不看其他部分而直接开始其中的一篇;但是文章的顺序是按着一篇比一篇更有挑战而编排的。
在使用任何指南之前,我建议学生先应该使用官方的教程(http://robocode.alphaworks.ibm.com/myfirstrobot/MyFirstRobot.html)。它非常短小并且并不涉及任何编程(它包含的一小部分代码是系统自动产生的);它的目的是要介绍Robocode集成开发环境许多不同的组件。
在这里,我的第二个机器人(http://www.robochina.org/web/cms/view.php?id=125)一篇是特别重要的,因为它给出了API的总览并讲述了一些重要方法(methods)的使用。总之,顺序并不重要,尽管他们是按照递升难度而编排的。
例子机器人的特征索引(http://www.robochina.org/web/cms/view.php?id=130)一篇不是重要的部分;他是一个大致的摘要,指出了robocode的一些重要的编程主题,和它们是在什么地方通过机器人例子阐述的。

指南的规划
此系列指南是建立在“通过解决问题而学习“的原则之上的。简而言之,这意味着将大的普通的问题摆出来,学生必须指出到底怎样处理和解决问题(相反是小的,需要谨慎的编程练习),并且知道需要那些知识来解决问题。采用“通过解决问题而学习“的目的是为了教学生怎样学习。

每一篇指南都包含一个技术介绍,并至少提出一个问题和它的解决方案。
· 介绍 -它概括了这篇指南的学习目标,也许对你选择哪些作为学习材料有帮助
· 问题 -问题本身是通过大字体显示的,可能会有一两个提示或建议的策略给学生
· 解决方案-作为一篇指南,每一个方案都有足够的用来阐明和解决问题的解释。方案中甚至还有一些学习过程中快速进步的小窍门;这些窍门可以作为指南的一个练习或者成为学生之所以不能解决问题的结症。
_________________


提交时间:2003-09-22
文章来源:师夷之技翻译项目
阅读次数:3829

原创粉丝点击