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

📄 test.java

📁 Swarm是一个非常有用的仿真工具
💻 JAVA
字号:
import swarm.Globals;import swarm.Selector;import swarm.defobj.Zone;import swarm.defobj.ZoneImpl;import swarm.simtoolsgui.GUISwarm;import swarm.simtoolsgui.GUISwarmImpl;import swarm.activity.ActionGroup;import swarm.activity.ActionGroupImpl;import swarm.activity.Schedule;import swarm.activity.ScheduleImpl;import swarm.activity.Activity;import swarm.objectbase.Swarm;import swarm.objectbase.SwarmImpl;public class Test{    public static void main (String[] args)    {	ObserverSwarm displaySwarm;        // Swarm initialization: all Swarm apps must call this first.        Globals.env.initSwarm ("SimpleBug", "2.1", 			       "bug-swarm@santafe.edu", args);        displaySwarm = new ObserverSwarm(Globals.env.globalZone);	displaySwarm.buildObjects();	displaySwarm.buildActions();	displaySwarm.activateIn(null);	displaySwarm.go();	displaySwarm.drop();    }}class ObserverSwarm extends GUISwarmImpl{    ZoneImpl modelZone;    ModelSwarm modelSwarm;    ScheduleImpl displaySchedule;    boolean simulationFinished = false;    public ObserverSwarm(Zone azone)    {	super(azone);    }    public Object buildObjects()    {	super.buildObjects();	modelZone = new ZoneImpl(getZone());	modelSwarm = new ModelSwarm(modelZone);	getControlPanel().setStateStopped();	System.out.println("Now building objects.");	modelSwarm.buildObjects();	modelSwarm.setDisplaySwarm(this);	return this;    }    public Object buildActions()    {	Selector sel;	ActionGroupImpl displayActions;	super.buildActions();	modelSwarm.buildActions();	displayActions = new ActionGroupImpl(getZone());	try	    {	    sel = new Selector(getClass(), "checkForDone", false);	    displayActions.createActionTo$message(this, sel);	    }	catch (Exception e)	    {	    System.out.println("Selector error.");	    System.exit(1);	    }	displaySchedule = new ScheduleImpl(getZone(), 1);	displaySchedule.at$createAction(0, displayActions);	return this;    }    public Activity activateIn(Swarm swarmContext)    {	super.activateIn(swarmContext);	modelSwarm.activateIn(this);	displaySchedule.activateIn(this);	// System.out.println("displaySwarm activated: " + getActivity());	return getActivity();    }    public void checkForDone()    {	System.out.println("checkForDone " +			   Globals.env.getCurrentTime());	System.out.println("modelSwarm's status is " 			   + modelSwarm.getActivity().getStatus().getName());	if (simulationFinished)    // if (modelSwarm.getActivity() == null)	    {	    System.out.println("I said to QUIT!");	    getControlPanel().setStateQuit();	    }	else if (modelSwarm.getActivity().getStatus().getName().equals("Completed")	    || modelSwarm.getActivity().getStatus().getName().equals("Terminated"))	    // else if (simulationFinished)	    {	    System.out.println("simulationFinished "			       + Globals.env.getCurrentTime());	    // (modelSwarm.getActivity()).terminate();	    // (modelSwarm.getActivity()).drop();	    simulationFinished = true;	    System.out.println("Press QUIT when ready.");	    getControlPanel().setStateStopped();	    }    }    // Receive a message that the simulation is done and set    // simulationFinished to true.    public void simulationDone()    {	simulationFinished = true;    }}class ModelSwarm extends SwarmImpl{    ScheduleImpl modelSchedule;    ObserverSwarm displaySwarm;    public ModelSwarm(Zone azone)    {	super(azone);    }    public void setDisplaySwarm(ObserverSwarm dS)    {	displaySwarm = dS;    }    public Object buildObjects()    {	super.buildObjects();	return this;    }    public Object buildActions()    {	Selector sel;	ActionGroupImpl modelActions;	modelActions = new ActionGroupImpl(getZone());	try	    {	    sel = new Selector(getClass(), "checkTime", false);	    modelActions.createActionTo$message(this, sel);	    }	catch (Exception e)	    {	    System.out.println("Selector error.");	    System.exit(1);	    }	modelSchedule = new ScheduleImpl(getZone(), 1);	modelSchedule.at$createAction(0, modelActions);	return this;    }    public Activity activateIn(Swarm swarmContext)    {	super.activateIn(swarmContext);	modelSchedule.activateIn(this);	// System.out.println("modelSwarm activated: " + getActivity());	return getActivity();    }    public void checkTime()    {	int time;	time = Globals.env.getCurrentTime();	System.out.println("checkTime " + time);	if (time >= 5)	    {		//displaySwarm.simulationDone();		this.getActivity().terminate();	    }	return;    }}

⌨️ 快捷键说明

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