⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 humanoid.java

📁 2004年robotcup世界冠军源代码
💻 JAVA
字号:
// Copyright (C) 2002 Takeshi Morimoto <morimoto@takopen.cs.uec.ac.jp>// All rights reserved. /**  * Edit by Omid AmirGhiasvand  * 2006-4-23  * 4:05 AM  *  * Last Edit:  * 2006-05-19  * 5:39 pm  *  */package yab.agent.object;import yab.agent.DisasterSpace;import yab.io.object.*;import MRL.Utilities.SimulatorsConstants;import java.util.*;import yab.agent.PlatoonAgent;public abstract class Humanoid extends MovingObject {    public Humanoid(int id, BaseHumanoid object, DisasterSpace world)    { super(id, object, world); }    private BaseHumanoid obj() { return (BaseHumanoid) object; }    public int hp() { return obj().hp(); }    public int damage() { return obj().damage(); }    public int buriedness() { return obj().buriedness(); }    private int noOfAmbulanceThatNeededToRescueMe=-1;    private int timeToDead=301;    public boolean assigned=false;    public HashSet ambulanceAssigned= new HashSet();    private float value=0;    private boolean accessible=true;    public int notAccseesibleTime=0;//saeed 85-2-3s    public boolean isBuried() {      return (buriedness() > 0);    }    //////////////////////////??????????????????????????????????????    public void updateNoOfAmbulanceThatNeededToRescueMe(int n)       {           if (timeToRescue(n)+5>timeToDead)           {              noOfAmbulanceThatNeededToRescueMe=-1;              return;           }           else           {               int i = 1;               while (i <= n) {                   if (timeToRescue(i)+5 <= timeToDead) {                       noOfAmbulanceThatNeededToRescueMe = i;                       break;                   }                   i++;               }           }      }   public int getNoOfAmbulanceThatNeededToRescueMe()   {     return noOfAmbulanceThatNeededToRescueMe;   }   public void setTimeToDead(int t)   {     timeToDead=t-1;   }   public int getTimeToDead()   {     return timeToDead;   }    public boolean needLoad() {      return (hp() > 0              && buriedness() == 0              && ! (motionlessPosition() instanceof Refuge)              && this instanceof Civilian              && position() instanceof Building);    }    public int lifespan() {      if(damage() < 5 )          return Integer.MAX_VALUE;      else      {          int time =Math.max(this.hearTime(),this.time());          return (hp()-(world.time()-time)*damage())/damage();      }    }    public boolean needRescue() {        return (hp() > 0 && buriedness() > 0 && !(motionlessPosition() instanceof Refuge ));    }    public void updateDistance(RealObject amPositoion, List fires)    {      distanceToMe = (float) amPositoion.distance(this.motionlessPosition());      calDistanceToNearestFire(fires);    }    public void calDistanceToNearestFire(List fires) {      if (fires.isEmpty()) {        distanceToNearestFireSite = Integer.MAX_VALUE;        return;      }      distanceToNearestFireSite = motionlessPosition().getMinDist(fires);    }    public float distanceToNearestFireSite;    public float distanceToMe; // distance to Ambulance that add this civilian to his set    private int timeToRescue(int numofAmb)    {     return (int) (java.lang.Math.ceil(buriedness() / numofAmb));    }    private int m_aliveTime = 0;    public int getAliveTime()    {        return m_aliveTime;    }    public void setAliveTime(int value)    {        m_aliveTime = value;    }    public Collection validRouteBldgs = new HashSet();/////////////////////////////////////////////////////////////////////////////////    public void updateValue() {          if (timeToDead>buriedness()/2)              value = 100000;           value = (timeToDead+ distanceToMe/500) + 3*buriedness();           if (this instanceof PoliceForce)               value=3;           else if (this instanceof FireBrigade)               value=2;           else if (this instanceof AmbulanceTeam)               value =1;       }      public float getvalue()      {        return value;      }       public boolean isAccessible()     {        return accessible;     }     public void setAccesible(boolean b )     {         accessible = b;     }     public boolean isRescueAble(int numOfAT)   {       if (lifespan()-(buriedness()/numOfAT)>0 )         return true ;       else         return false;   }    private boolean m_reportedDead = false;    public boolean isReportedAsDead(){        return m_reportedDead;    }    public void setReportedAsDead(){        m_reportedDead= true;    }    private boolean m_reportedRescued = false;    public boolean isReportedAsRescued(){        return m_reportedRescued;    }    public void setReportedAsRescued(){        m_reportedRescued = true;    }    private int m_lastHp = 10000;    public int lastHp(){        return m_lastHp;    }    public void setLastHp(int value){        m_lastHp = value;    }    private int m_lastDamage = 0;    public int lastDamage()    {        return m_lastDamage;    }    public void setLastDamage(int value)    {        m_lastDamage = value;    }    private int m_lastUpdateTime = 2;    public int lastUpdateTime(){        return m_lastUpdateTime;    }    public void setLastUpdateTime(int value){        m_lastUpdateTime = value;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -