• 有移动规则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());
    	}
    }
    				
    

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

  • 相关阅读:
    编程学习杂烩
    设计模式
    redis
    H5
    Java
    db工具
    python + pip
    mysql
    Spring Security
    Spring Cloud Gateway
  • 原文地址:https://www.cnblogs.com/airycode/p/4828565.html
Copyright © 2020-2023  润新知