有移动规则2

        

import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
 * 这个类对应一个机器人,根据需要实现相应的Action处理函数,
 * 就可以订制自己的机器人。
 */
public class Text extends SimpleRobot
{
    //首先需要定义两个速度一个是移动的速度,和转动的速度
    private static final double TURN_VELOCITY = Math.toRadians(3);
    private static final double GO_VELOCITY = 5;
    //根据这两个变量可以计算出来弧半径
    private static final double R = GO_VELOCITY/TURN_VELOCITY;
    
    
    
    
    /**
     * 每个单位时间都会触发
     */
    public void onTick(TickAction action){
            move(GO_VELOCITY);
            turn(TURN_VELOCITY);
            waitJiao(Math.toRadians(270));
            turn(0);
            waitDistance(R*2);
            turn(-TURN_VELOCITY);
            waitJiao(Math.toRadians(270));
            turn(0);
            waitDistance(R*2);
    
    }
    
    /** 
     * 当开始一轮新的比赛时触发
     */
    public void onRoundBegin(RoundBeginAction action){
    
    
    
    
    
    }
    //等待这个机器人走过这条直线的长度
    
    private void waitDistance(double displance){
        int time =(int) (displance/GO_VELOCITY);
        for (int i = 0; i <time; i++) {
            delay();
        }
        
        
    }
    
    private void waitJiao(double jiaodu){
        int time =(int) (jiaodu/TURN_VELOCITY);
        for (int i = 0; i <time; i++) {
            delay();
        }
        
    
    
    }
    
        
    /**
     * 当一轮比赛结束时触发
     */
    public void onRoundFinish(RoundFinishAction action){}

    /** 
     * 当开始一场新的比赛时触发
     */
    public void onMatchBegin(MatchBeginAction action){}
        
    /**
     * 当整场比赛结束时触发
     */
    public void onMatchFinish(MatchFinishAction action){}
    
    /**
     * 当有队友向自己发送消息时触发
     */
    public void onMessageReceived(MessageReceivedAction action){}
    
    /**
     * 当撞到其它机器人时触发
     */
    public void onHitRobot(HitRobotAction action){}

    /**
     * 当撞到墙时触发
     */
    public void onHitWall(HitWallAction action){}
    
    /**
     * 当任意一个机器人开火时触发
     */
    public void onFire(FireAction action){}
    
    /**
     * 当有机器人死亡时触发
     */
    public void onRobotDeath(RobotDeathAction action){}
    
    /**
     * 当自己的子弹击中敌人时触发
     */
    public void onBulletHit(BulletHitAction action){}
    
    /**
     * 当被别人的子弹击中时触发
     */
    public void onHitedByBullet(HitedByBulletAction action){}
    
    /**
     * 机器人程序入口
     * @param args
     */
    public static void main(String[] args)
    {
        startup(args, new Text());
    }
}
                            



2import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
 * 这个类对应一个机器人,根据需要实现相应的Action处理函数,
 * 就可以订制自己的机器人。
 */
public class Firgure extends SimpleRobot
{
    //首先需要定义两个速度一个是移动的速度,和转动的速度
    private static final double TURN_VELOCITY = Math.toRadians(3);
    private static final double GO_VELOCITY = 5;
    //根据这两个变量可以计算出来弧半径
    private static final double R = GO_VELOCITY/TURN_VELOCITY;
    
    
    
    
    /**
     * 每个单位时间都会触发
     */
    public void onTick(TickAction action){}
    
    /** 
     * 当开始一轮新的比赛时触发
     */
    public void onRoundBegin(RoundBeginAction action){
    
        while (true) {
            move(GO_VELOCITY);
            turn(TURN_VELOCITY);
            waitJiao(Math.toRadians(270));
            turn(0);
            waitDistance(R*2);
            turn(-TURN_VELOCITY);
            waitJiao(Math.toRadians(270));
            turn(0);
            waitDistance(R*2);
            
            
        
        }
    
    
    
    }
    //等待这个机器人走过这条直线的长度
    
    private void waitDistance(double displance){
        int time =(int) (displance/GO_VELOCITY);
        for (int i = 0; i <time; i++) {
            delay();
        }
        
        
    }
    
    private void waitJiao(double jiaodu){
        int time =(int) (jiaodu/TURN_VELOCITY);
        for (int i = 0; i <time; i++) {
            delay();
        }
        
    
    
    }
    
        
    /**
     * 当一轮比赛结束时触发
     */
    public void onRoundFinish(RoundFinishAction action){}

    /** 
     * 当开始一场新的比赛时触发
     */
    public void onMatchBegin(MatchBeginAction action){}
        
    /**
     * 当整场比赛结束时触发
     */
    public void onMatchFinish(MatchFinishAction action){}
    
    /**
     * 当有队友向自己发送消息时触发
     */
    public void onMessageReceived(MessageReceivedAction action){}
    
    /**
     * 当撞到其它机器人时触发
     */
    public void onHitRobot(HitRobotAction action){}

    /**
     * 当撞到墙时触发
     */
    public void onHitWall(HitWallAction action){}
    
    /**
     * 当任意一个机器人开火时触发
     */
    public void onFire(FireAction action){}
    
    /**
     * 当有机器人死亡时触发
     */
    public void onRobotDeath(RobotDeathAction action){}
    
    /**
     * 当自己的子弹击中敌人时触发
     */
    public void onBulletHit(BulletHitAction action){}
    
    /**
     * 当被别人的子弹击中时触发
     */
    public void onHitedByBullet(HitedByBulletAction action){}
    
    /**
     * 机器人程序入口
     * @param args
     */
    public static void main(String[] args)
    {
        startup(args, new Firgure());
    }
}
                

       

import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
 * 这个类对应一个机器人,根据需要实现相应的Action处理函数,
 * 就可以订制自己的机器人。
 */
public class Firgure extends SimpleRobot
{
	//首先需要定义两个速度一个是移动的速度,和转动的速度
	private static final double TURN_VELOCITY = Math.toRadians(3);
	private static final double GO_VELOCITY = 5;
	//根据这两个变量可以计算出来弧半径
	private static final double R = GO_VELOCITY/TURN_VELOCITY;
	
	/**
	 * 每个单位时间都会触发
	 */
	public void onTick(TickAction action){}
    
	/** 
	 * 当开始一轮新的比赛时触发
	 */
	public void onRoundBegin(RoundBeginAction action){
	
		while (true) {
			move(GO_VELOCITY);
			turn(TURN_VELOCITY);
			waitJiao(Math.toRadians(360));
			turn(0);
			waitDistance(R*2);				
		
		}
	
	
	
	}
	//等待这个机器人走过这条直线的长度
	
	private void waitDistance(double displance){
		int time =(int) (displance/GO_VELOCITY);
		for (int i = 0; i <time; i++) {
			delay();
		}
		
		
	}
	
	private void waitJiao(double jiaodu){
		int time =(int) (jiaodu/TURN_VELOCITY);
		for (int i = 0; i <time; i++) {
			delay();
		}
		
	
	
	}
	
		
	/**
	 * 当一轮比赛结束时触发
	 */
	public void onRoundFinish(RoundFinishAction action){}

	/** 
	 * 当开始一场新的比赛时触发
	 */
	public void onMatchBegin(MatchBeginAction action){}
		
	/**
	 * 当整场比赛结束时触发
	 */
	public void onMatchFinish(MatchFinishAction action){}
	
	/**
	 * 当有队友向自己发送消息时触发
	 */
	public void onMessageReceived(MessageReceivedAction action){}
	
	/**
	 * 当撞到其它机器人时触发
	 */
	public void onHitRobot(HitRobotAction action){}

	/**
	 * 当撞到墙时触发
	 */
	public void onHitWall(HitWallAction action){}
	
	/**
	 * 当任意一个机器人开火时触发
	 */
	public void onFire(FireAction action){}
	
	/**
	 * 当有机器人死亡时触发
	 */
	public void onRobotDeath(RobotDeathAction action){}
	
	/**
	 * 当自己的子弹击中敌人时触发
	 */
	public void onBulletHit(BulletHitAction action){}
	
	/**
	 * 当被别人的子弹击中时触发
	 */
	public void onHitedByBullet(HitedByBulletAction action){}
	
	/**
	 * 机器人程序入口
	 * @param args
	 */
	public static void main(String[] args)
	{
		startup(args, new Firgure());
	}
}
				

    这个代码是走一个圆走一条直线,一直重复下去

原文地址:https://www.cnblogs.com/airycode/p/4828565.html