2012东大伊朗公开赛代码 package seu.agent; import java.awt.Point; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.EnumSet; import java.util.HashSet; import java.util.List; import java.util.Random; import java.util.Set; import rescuecore2.Constants; import rescuecore2.config.Config; import rescuecore2.messages.Command; import rescuecore2.misc.Pair; import rescuecore2.standard.components.StandardAgent; import rescuecore2.standard.entities.AmbulanceTeam; import rescuecore2.standard.entities.Area; import rescuecore2.standard.entities.Blockade; import rescuecore2.standard.entities.Building; import rescuecore2.standard.entities.Civilian; import rescuecore2.standard.entities.Edge; import rescuecore2.standard.entities.FireBrigade; import rescuecore2.standard.entities.Human; import rescuecore2.standard.entities.PoliceForce; import rescuecore2.standard.entities.Refuge; import rescuecore2.standard.entities.Road; import rescuecore2.standard.entities.StandardEntity; import rescuecore2.standard.entities.StandardEntityConstants.Fieryness; import rescuecore2.standard.entities.StandardEntityURN; import rescuecore2.standard.entities.StandardPropertyURN; import rescuecore2.standard.entities.StandardWorldModel; import rescuecore2.standard.messages.AKSpeak; import rescuecore2.worldmodel.ChangeSet; import rescuecore2.worldmodel.EntityID; import rescuecore2.worldmodel.Property; import seu.agent.BasicTask.BasicTask; import seu.agent.BasicTask.State; import seu.config.Configuration; import seu.message.ImportantMessage; import seu.message.MessageController; import seu.message.MessageMemory; import seu.message.MessagePriority; import seu.message.MessageTranslator; import seu.message.QueueMessage; import seu.message.SmartChoose; import seu.message.Type.AgentIsBuriedMessage; import seu.message.Type.BlankMessage; import seu.message.Type.BuildingIsBurningMessage; import seu.message.Type.BuildingIsExploredMessage; import seu.message.Type.BuildingIsExtinguishedMessage; import seu.message.Type.CivilianInformationMessage; import seu.message.Type.CivilianIsSavedOrDeadMessage; import seu.message.Type.InformTeamMessage; import seu.message.Type.Message; import seu.message.Type.MessageCount; import seu.message.Type.MessageType; import seu.message.Type.RegionAssignmentMessage; import seu.object.Exploration; import seu.object.SEUWorldModel; import seu.object.Building.BuildingInfo; import seu.object.Partition.EntityInPartition; import seu.object.Partition.GroupingType; import seu.object.Partition.PartitionMap; import seu.object.Road.MultiBlockDistanceComparator; import seu.object.Road.RoadInfo; import seu.object.Road.RoadUtilities; import seu.utilities.DistanceComparator; import seu.utilities.Path; import seu.utilities.PositionHistory; import seu.utilities.Geometry.PositionLocate; import seu.utilities.Search.AbstractSearch; import seu.utilities.Search.AStar.AStarSearch; import seu.utilities.Search.Cost.PathType; /** * SEU's Top Level Agent */ public abstract class SEUAgent<E extends StandardEntity> extends StandardAgent<E> { public static final double AGENT_RADIUS = 500; private static final int RANDOM_WALK_LENGTH = 3; private static final int MIN_DAMAGE_GO_TO_REFUGE = 0; private static final int DEFAULT_AGENT_THINK_TIME = 1000; private static final double AGENT_THINK_TIME_TOLERANCE = 0.8; private static final int DEFAULT_VIEW_DISTANCE = 30000; private static final int DEFAULT_RANDOM_WALK_PENALTY = 3; private static final int IGNORE_COMMANDS_AFTER = 2; protected static final int MAX_PATH_LENGTH = 30; @SuppressWarnings("unused") private static final String SAY_COMMUNICATION_MODEL = "kernel.standard.StandardCommunicationModel"; private static final String MAX_PLATOON_CHANNELS_KEY = "comms.channels.max.platoon"; private static final String SPEAK_COMMUNICATION_MODEL = "kernel.standard.ChannelCommunicationModel"; protected static final String START_TIME_KEY = "kernel.agents.ignoreuntil"; private static final String AGENT_THINK_TIME_KEY = "kernel.agents.think-time"; private static final String VIEW_DISTANCE_KEY = "perception.los.max-distance"; protected int viewDistance; // 鍙湁Say閫氫俊鏃惰竟璧拌竟璇� protected MessageTranslator sayMessageTransfer; protected int timeStep; protected int startTime; protected int totalSent; protected int totalReceived; protected int agentThinkTime; protected int randomWalkPenalty; protected int desiredPath; protected SEUWorldModel world; protected State state; protected Collection<StandardEntity> unexploredBuildings; protected Collection<Pair<Building, Fieryness>> informedBurningBuildings; protected MessageController messageController; protected MessageMemory messageMemory; protected ChangeSet changeSet; protected Set<EntityID> changedEntities; protected List<EntityID> observableBuildings; @SuppressWarnings({ "rawtypes" }) protected List<BasicTask> tasks; protected StandardEntity locationAtLastCycle; protected StandardEntityURN agentType; protected List<Building> burningBuildingsInChangeSet; protected List<Human> foundAgents; protected List<Building> heatingBuildings; protected Date decisionStartTime; protected List<Civilian> civiliansAround; protected ImportantMessage importantmessage; protected SmartChoose smartchoose; // 姝讳骸鐨勬櫤鑳戒綋鍜孋ivilain private List<EntityID> deadHumans; public List<EntityID> getDeadHumans() { return deadHumans; } public void setSavedCivAndAgents(List<EntityID> savedCivAndAgents) { } // 璁板綍鍒拌揪鐨勫湴鐐瑰拰鏃堕棿 PositionHistory positionHistory; /** * The search algorithm. */ protected AbstractSearch search; /** * Whether to use AKSpeak messages or not. */ protected boolean useSpeak; /** * Construct a SEU Agent. */ protected SEUAgent() { importantmessage =new ImportantMessage(); smartchoose = new SmartChoose(); } public int getNo() { if (world == null) { return 0; } List<EntityID> team = world.getTeam(); if (team.contains(getID())) { return team.indexOf(getID()); } else { return 0; } } public void superPostConnect() { super.postConnect(); } // 璁板綍涓婁笂鍛ㄦ湡锛屼笂涓�懆鏈燂紝褰撳墠鍛ㄦ湡鏅鸿兘浣撲綅缃� private Area latestPosition; private Area lastPosition; private Area currentPostion; // private State latestState; private State lastState; private State currentState; // 涓や釜绉诲姩鏍囧織 // 杩炵画涓や釜鍛ㄦ湡闅忔満绉诲姩 boolean moveOnce = false; boolean moveAgain = false; // 鏅鸿兘浣撶姸鎬佷俊鎭� State temp; // 閲嶅娆℃暟
- 1
- 2
- 3
- 4
- jqjq2014-07-31真是好的资料!找了很久!!!!!!!!
- gaoganlsz2014-02-21代码可以在直接参考,就是有一点,无法直接运行,还要自己修改。 可惜俺是新手, 只能借鉴借鉴了。
- 粉丝: 10
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助