发新话题
打印

【转帖】玩Robocode游戏,学习Java

【转帖】玩Robocode游戏,学习Java

Robocode是Java编写的一款开源的坦克游戏,与一般的游戏有着非常不同的玩法。游戏中的坦克不是由键盘、鼠标或者游戏杆直接控制,而是通过你用Java对坦克机器人编程,给坦克机器人设计智能来指挥它战斗。比如ahead(100)使机器人向前移动100。你的程序指挥你的坦克攻击对手,同时躲避来自对手的攻击,以此来较量得分的多少。你可以下载别人的机器人,和你编写的机器人竞赛,如果你觉得你的机器人够厉害,也可以上传你机器人到Robocode的主页和别人比赛。非常有意思,在娱乐的同时学习和提高你的Java编程能力。

Robocode最新的版本是1.3.5,可在Robocode主页上下载。下载完robocode-setup-1.3.5.jar,双击即可安装Robocode游戏,需要JRE1.5+。安装完成,启动程序,看到如下界面

   

程序中已经带了一些坦克机器人,我们可以先用这些机器人学习如何开始一场战斗, 然后再学习如何编写你自己的机器人。

点击Battle/New菜单,或者按Ctrl+N新建一个战斗。在弹出的New Battle对话框中选择坦克机器人和战斗的场数。比如选择sample.MyFirstRobot,sample.RamFire和sample.TrackFire, 设置场数Number of Rounds为5场. 点击Start Battle按钮开始战斗。

   

战斗场面
   

编写一个机器人非常简单,虽然编写一个厉害的机器人很难。点击Robot/Editor菜单,或者按Ctrl+E打开机器人编辑窗口。选择New/Robot菜单新建一个Robot,根据提示输入Robot的名字和Package的名字。新建的Robot已经包含如下代码,其实这已经是一个可用的坦克机器人,保存,编译后,你就可以在New Battle对话框选择新建的机器人了。
    package a11;   
  • import robocode.*;   

  • /**   
  • * A11 - a robot by (your name here)   */
  • public
    class A11 extends Robot   {   

  • /**      * run: A11’s default behavior   
  •      */

    public
    void run() {   

  • // After trying out your robot, try uncommenting the import at the top,

    // and the next line:

  • //setColors(Color.red,Color.blue,Color.green);

    while(true) {   

  • // Replace the next 4 lines with any behavior you would like
                ahead(100);   
  •             turnGunRight(360);               back(100);   
  •             turnGunRight(360);           }   
  •     }   

  • /**      * onScannedRobot: What to do when you see another robot   
  •      */

    public
    void onScannedRobot(ScannedRobotEvent e) {   
  •         fire(1);       }   


  • /**   
  •      * onHitByBullet: What to do when you’re hit by a bullet       */

  • public
    void onHitByBullet(HitByBulletEvent e) {           turnLeft(90 - e.getBearing());   
  •     }   
  • }  


看代码中的英文注释,理解上面的程序应该没有问题的。当然如果你要战胜别人,就需要修改上面的代码,提高你的机器人的智能。下面的链接里有相关的文章介绍如何编写厉害的机器人的。

Robocode带的编辑器功能比较简陋,你也可以设置成用Eclipse编辑机器人代码。具体的方法见http://robocode.sourceforge.net/help/ide/ide.html

Robocode相关链接
          Robocode主页

TOP

欣赏
古月

TOP

在游戏中学习的方法很好啊。

TOP

发新话题