All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sim.app.tutorial7.Tutorial7 Maven / Gradle / Ivy

Go to download

MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D.

The newest version!
/*
  Copyright 2006 by Sean Luke and George Mason University
  Licensed under the Academic Free License version 3.0
  See the file "LICENSE" for more information
*/

package sim.app.tutorial7;
import sim.engine.*;
import sim.field.grid.*;

public class Tutorial7 extends SimState
    {
    private static final long serialVersionUID = 1;

    public SparseGrid3D flies;
    public DoubleGrid2D xProjection;
    public DoubleGrid2D yProjection;
    public DoubleGrid2D zProjection;

    int width = 30;
    int height = 30;
    int length = 30;
    public void setWidth(int val) { if (val > 0) width = val; }
    public int getWidth() { return width; }
    public void setHeight(int val) { if (val > 0) height = val; }
    public int getHeight() { return height; }
    public void setLength(int val) { if (val > 0) length = val; }
    public int getLength() { return length; }

    public Tutorial7(long seed)
        {
        super(seed);
        }

    public void start()
        {
        super.start();
        
        flies = new SparseGrid3D(width,height,length);
        xProjection = new DoubleGrid2D(height,length);
        yProjection = new DoubleGrid2D(width,length);
        zProjection = new DoubleGrid2D(width,height);

        // schedule the zero-er at ordering 0
        schedule.scheduleRepeating(new Steppable()
            {
            public void step(SimState state)
                {
                xProjection.setTo(0);
                yProjection.setTo(0);
                zProjection.setTo(0);
                }
                
            // because I am an anonymous nested subclass (see Tutorial 3)...
            static final long serialVersionUID = 1;
            });

        // make some random flies at ordering 1
        for(int i=0; i<100;i++)
            {
            Fly fly = new Fly();
            flies.setObjectLocation(fly, random.nextInt(width), random.nextInt(height), random.nextInt(length));
            schedule.scheduleRepeating(Schedule.EPOCH,1,fly,1);
            }
        
        }

    public static void main(String[] args)
        {
        doLoop(Tutorial7.class, args);
        System.exit(0);
        }    
    }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy