//////////////////////////////////////////////////////////////////////////////////// // Inputs User int anzahlAgenten = 100; //Anzahl der Agenten im Raster int anzahlFelder = 35; //Anzahl Felder des Rasters int ptcd=1; //Wahrscheinlichkeit für Richtungswechsel in % (Probability to change direction) int[][] matricesInUse = { //Matrizen bei denen eine Aktion stattfindet // -1 für zufallsmatrix, -2 für keine matrix { 0, -1}, {-1, -1}, {-1, -1}, {-2, -2}, {-2, -2}, {-2, -2}, {-2, -2}, {-2, -2}, }; final boolean NOPRINTLN = false; final boolean NOAGENTS = false; //////////////////////////////////////////////////////////////////////////////////// // Definition Globaler Variablen/Listen/Instanzen Raster raster; // neues Raster ''raster'' Raster rasterMatrizen; // neues Raster ''rasterMatrizen'' zum anzeigen gebrauchter Matrizen ArrayList agentList; // Liste für Agenten ArrayList matrixList; // Liste für Matrizen int currAgentId = 1; //Variable für Agenten Nummer //////////////////////////////////////////////////////////////////////////////////// // Setup void setup() { //frameRate(1); //smooth(); size(800, 600); background(100); PFont font = loadFont("ArialMT-10.vlw"); textFont(font, 10); //Raster initialisieren raster = new Raster(anzahlFelder, anzahlFelder, 0); //erstellen neue Instanz der klasse Raster (Felder x-Richtung, Felder y-Richtung) raster.setPosition( 50, 50 ); // offset des Rasters von linker oberer Ecke raster.fitIntoRect( width-100, height-100 ); //einpassen des Rasters ins Applet //Raster zur Anzeige gebrauchter Matrizen initialisieren rasterMatrizen = new Raster(9, 40, 4); //erstellen neue Instanz der klasse Raster (Felder x-Richtung, Felder y-Richtung) rasterMatrizen.setPosition( 50 + raster.getXTopRight() , raster.getPositionY()); //offset des Rasters von linker oberer Ecke rasterMatrizen.setCellSize((raster.getRasterSizeY())/40); //einpassen des Rasters matrixList = createAllMatrices(); //ausführen der Methode im Matrizen_Pool zur Erstellung einer Arraylist ''matrixList'' setMatricesInUse(matricesInUse); //Agenten Bauen createAgents(anzahlAgenten,raster.getXCount()/2,raster.getYCount()/2); //(Anzahl, xPos, yPos) //TEXT text("Wahrscheinlichkeit, dass Agenten die Richtung wechseln: "+ptcd+"%" , raster.getPositionX()+0*rasterMatrizen.getCellSize(), raster.getPositionY()+raster.getXCount()*raster.getCellSize()+12); text("Anzahl Agenten: "+anzahlAgenten , raster.getPositionX()+0*rasterMatrizen.getCellSize(), raster.getPositionY()+raster.getXCount()*raster.getCellSize()+22); text("wird ersetzt durch" , rasterMatrizen.getPositionX()+1*rasterMatrizen.getCellSize(), rasterMatrizen.getPositionY()-rasterMatrizen.getCellSize()); } //////////////////////////////////////////////////////////////////////////////////// // Draw void draw() { raster.displayRaster(); //Darstellen des Rasters raster.displayCells(); //Darstellen der Zellen rasterMatrizen.displayRaster(); //Darstellen des Rasters für gebrauchte Matrizen rasterMatrizen.displayCells(); //Darstellen der Zellen für gebrauchte Matrizen //Durchgehen der Agentenliste for (int i=0; i