解剖学-打造自己的智能机器人

类别:Java 点击:0 评论:0 推荐:

解剖学-打造自己的智能机器人

作者:天翼.李 [email protected]         想把Robocode介绍给大家的想法由来已久,一直没时间,是啊,这么好的一个东西,我们怎么能错过呢?本系列的文章都由:Robocode 中华联盟()提供全面的技术支持。Robocode 解剖图


  Robocode 解剖图1每一台机器人都由三个可活动部件组成车身(Body) - 可以前进/后退,左右旋转.炮塔(Gun) - 安装在车身之上,可左右旋转,发射子弹.雷达(Radar) - 安装在炮塔之上,可左右旋转,当发现其他机器人时就会触发事件.下面我们再结合机器人的车身,炮塔,雷达的旋转方向及相关的API函数来看看更清晰的图像。


Robocode 解剖图2  


我的第一个机器人
   好了,了解了这么多内容,也该动动手的时候了。从现在开始我们将从最基本的java编程开始一步一步打造我们自己的智能机器人。一步步掌握Robocode的精华。由于引系列只是个引子,其中讲到的java术语并不会全部说明,大家可找找相关的资料看看再回来学习。

package wind;import robocode.*;
public class MyFirstRobot extends Robot{
        public void run() { 
              while (true) {   
                 ahead(100);
                 turnGunRight(360);
                 back(100);
                 turnGunRight(360);
              }
        }
        public void onScannedRobot(ScannedRobotEvent e) {
               fire(2); 
        } 
}
 
  上面就是Robocode中最基本的代码了,
 package wind;import robocode.*;
 public class MyFirstRobot extends Robot{
        public void run() { 
        }
  }
  import robocode.*;
  告诉java你要引入robocode下的所有类public class MyFirstRobot extends Robot告诉java我要的机器人类是继承直Robot这个对象,机器人名字为MyFirstRobotpublic void run() { }Robocode中公共接口函数,用来激活机器人线程 首先我们引入run()方法
        
       while (true) {
                    ahead(100);
                    turnGunRight(360);
                    back(100);
                    turnGunRight(360);
              }

     while(true) { } 当条件成立时,处理{}内的事件. 这个循环内可让我们的机器为不断前进/后退,旋转,开火等等处理!ahead(100),调用ahead(100)调用前进的方法,让机器人前进100的距离turnGunRight(360)旋转炮塔360度back(100)后退100的距离 当你的机器人扫描到别的机器人时,就触发onSacnnedRobot事件,在此事件中加入一点的方法,你就可进行相应的处理。Fire(1),是发射一颗能量为1的子弹。 
      
 public void onScannedRobot(ScannedRobotEvent e) {
               fire(1);
        }


 
 好了,在开发工具中编译你的机器人代码,就可把它放到战场中去实践了。

原文出处:Http://www.robochina.org/

 

本文地址:http://com.8s8s.com/it/it17948.htm