zoukankan      html  css  js  c++  java
  • 定点瞄准算法

    import org.robochina.airobot.tank.*;
    import org.robochina.math.*;
    import java.awt.geom.*;
    import java.util.*;
    
    /**
     * 这个类对应一个机器人,根据需要实现相应的Action处理函数,
     * 就可以订制自己的机器人。
     */
    public class FireOrginal extends SimpleRobot
    {
    	/**
    	 * 每个单位时间都会触发
    	 */
    	public void onTick(TickAction action){
    		//得到第一个对手的信息
    		Bot opponent = this.getFirstOpponent();
    		//如果没有对手就直接返回
    		if (opponent == null) {
    			return ;
    		} else {
    			//计算开火的方向
    			double heading = MathUtils.heading(getLocation(),opponent.getLocation());
    			//想指定的方向开火
    			fire(heading,3);
    		
    		}
    		
    	
    	
    	}
        
    	/** 
    	 * 当开始一轮新的比赛时触发
    	 */
    	public void onRoundBegin(RoundBeginAction action){}
    		
    	/**
    	 * 当一轮比赛结束时触发
    	 */
    	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 FireOrginal());
    	}
    }
    				
    

      

  • 相关阅读:
    线程中常见的方法
    停止线程方式
    线程间的通信_多生产者多消费者问题_JDK1.5新特性_Lock
    1-为什么java的main方法必须是静态的
    45-机器设计问题(深搜)
    44-最大差值三角形
    23-吝啬的国度(vector+深搜)
    43-八数码
    41-安排车辆
    41-邮差送信(dfs)
  • 原文地址:https://www.cnblogs.com/airycode/p/4829650.html
Copyright © 2011-2022 走看看