diff --git a/data/input/fishLight.xml b/data/input/fishLight.xml index b4aab16f5e74bd1d0ccd8ba4bc42bdd6320b3ff7..7527e06c433147f10ac226852449e7e6b121cc89 100644 --- a/data/input/fishLight.xml +++ b/data/input/fishLight.xml @@ -4,29 +4,40 @@ <pikelake.pikes.PikesGroup> <weightAtAgeThreshold>5.0</weightAtAgeThreshold> <monthOfBirth>6</monthOfBirth> + <processes> <processesAtBegin> + <pikelake.pikes.PikesPopulateProcess> <initialNumberOfPikes>5</initialNumberOfPikes> </pikelake.pikes.PikesPopulateProcess> + </processesAtBegin> + <processesEachStep> + + + <pikelake.environment.Time> + + </pikelake.environment.Time> + + <!-- pikelake.Grid> + + </pikelake.Grid--> + <pikelake.pikes.PikeMovement> - <distance>10</distance> <basicMovingRate>2</basicMovingRate> </pikelake.pikes.PikeMovement> - <pikelake.pikes.PikeGrowthProcess> + <!--pikelake.pikes.PikeGrowthProcess> <convertionFactor>0.25</convertionFactor> <slimRate>0.9</slimRate> </pikelake.pikes.PikeGrowthProcess> - <pikelake.pikes.PikeHuntProcess> + < pikelake.pikes.PikeHuntProcess> <satiety>0.5</satiety> - </pikelake.pikes.PikeHuntProcess> + </pikelake.pikes.PikeHuntProcess--> - <!-- pikelake.pikes.PikeObservationProcess/> - <pikelake.pikes.PikeMovement/--> <fr.cemagref.simaqualife.kernel.processes.FireAquaNismsChangesToObservers /> </processesEachStep> </processes> diff --git a/src/main/java/pikelake/Grid.java b/src/main/java/pikelake/Grid.java index e65abb40a64b25cb7b83d5766769de2b1825f985..aff2656921404a42b385465d8bab4066e9563095 100644 --- a/src/main/java/pikelake/Grid.java +++ b/src/main/java/pikelake/Grid.java @@ -10,7 +10,6 @@ import java.util.StringTokenizer; import pikelake.Cell; import pikelake.environment.AreaMovement; import pikelake.pikes.Pike; -import pikelake.pikes.PikesGroup; import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D; import fr.cemagref.simaqualife.kernel.AquaNismsGroup; import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters; @@ -29,8 +28,7 @@ public class Grid extends Grid2D<Cell, Individual> { */ @InitTransientParameters public void initTransientParameters(Pilot pilot) throws FileNotFoundException { - - + StringTokenizer sLigne; @SuppressWarnings("unused") double hsiStd = 0, hsiMoy = 0; @@ -78,7 +76,58 @@ public class Grid extends Grid2D<Cell, Individual> { } scanner.close(); } + + /* public void doProcess (Pilot pilot) throws FileNotFoundException { + + StringTokenizer sLigne; + @SuppressWarnings("unused") + double hsiStd = 0, hsiMoy = 0; + int idCell = 0, yPike = 0, xPike = 0; + + // Initialisation grille vide + grid = new Cell[gridWidth * gridHeight]; + + // Initialisation de toute la grille avec hsi = -1 + for (int cptCell = 0; cptCell < (gridWidth * gridHeight - 1); cptCell++) { + grid[cptCell] = new Cell(cptCell, -1); + } + // Lecture fichier contenant les HSI de toutes les mailles + + String filePath = "data/input/HSI/hsi_BROETE507.txt"; + Scanner scanner = new Scanner(new File(filePath)); + + // Initialisation de chaque cellule contenant HSI + // On boucle sur chaque ligne detectée + String line = scanner.nextLine(); + while (scanner.hasNextLine()) { + line = scanner.nextLine(); + + // Decoupage ligne : id, hsiStd, hsiMoy + sLigne = new StringTokenizer (line); + if (sLigne.hasMoreTokens()) + idCell = Integer.parseInt(sLigne.nextToken())-1; + if (sLigne.hasMoreTokens()) + hsiStd = Double.parseDouble(sLigne.nextToken()); + if (sLigne.hasMoreTokens()) + hsiMoy = Double.parseDouble(sLigne.nextToken()); + + // Conversion idCell en coordonnees (x, y) + // (x, y) avec les id de cellules de 0 à n-1 + yPike = (int) Math.floor(idCell / gridWidth); + xPike = (int) idCell - (yPike * gridWidth); + + // Inversion des coordonnees en Y (place l'origine en bas à gauche) + yPike = (gridHeight-1) - yPike ; + // Conversion des coordonnees (x, y) en idCell + idCell = xPike + yPike * gridWidth; + + // Initialisation du hsi de la cellule(idCell) + grid[idCell] = new Cell(idCell, hsiMoy); + } + scanner.close(); + }*/ + public void addAquaNism(Individual ind, AquaNismsGroup<?, ?> group) { super.addAquaNism(ind, group); ind.getPosition().addPike((Pike) ind); @@ -102,19 +151,22 @@ public class Grid extends Grid2D<Cell, Individual> { * sortie : neighbours : liste des cellules (id) accessibles * */ - public List<Cell> getNeighbours(Cell position, int distance) { + public List<Cell> getNeighbours(Cell position) { + List<Cell> neighbours = new ArrayList<Cell>(); List<String> listeCoord = null; int xPike = 0, yPike = 0; + // Calcul des coordonnees (x, y) a partir de l'Id de la maille yPike = (position.getIndex() / gridWidth); xPike = (position.getIndex() - (yPike * gridWidth)); - AreaMovement aa = new AreaMovement("ETE","ETE"); - - listeCoord = aa.calculationArea(aa.getDistMax()); + // Calcul de la liste des mailles pour une distance donnee + AreaMovement aa = new AreaMovement("ETE","AUBE"); + listeCoord = aa.getArea(); + // Calcul des mailles comprises dans le lac for (String liste : listeCoord) { String[] coord = liste.split(" "); diff --git a/src/main/java/pikelake/environment/AreaMovement.java b/src/main/java/pikelake/environment/AreaMovement.java index bb71bb746a9b586cb2fd193d7aaaf46e44a0f6f7..812618dad02dfded6c0162a3cf8978cb00fd4e27 100644 --- a/src/main/java/pikelake/environment/AreaMovement.java +++ b/src/main/java/pikelake/environment/AreaMovement.java @@ -7,11 +7,9 @@ import java.util.List; import java.util.Scanner; import java.util.StringTokenizer; -import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D.NeighborsType; - public class AreaMovement { - List<String> area = new ArrayList<String>(); + static List<String> area = new ArrayList<String>(); String saison = null, phaseJour = null; int distMin = 0, distMoy = 0, distMax = 0, std = 0; StringTokenizer sLigne; @@ -59,27 +57,41 @@ public class AreaMovement { public List<String> calculationArea (int distance) { int xi = 0, yi = 0; - // Conversion distance en nombre de cellule int distCell = (int) Math.round(distance/10.); - - System.out.println(distCell); - // Calcul des coordonnees (x,y) des cellules pour une distance donnee for (xi = -distCell; xi <= distCell; xi++) { yi = (int) Math.round(Math.sqrt(distCell*distCell - xi*xi)); for (int j = -yi; j <= yi; j++) { area.add(xi + " " + j); - //System.out.println(xi + " " + j); } } return area; } + public int getDistMin () { + return distMin; + } + + public int getDistMoy () { + return distMoy; + } + public int getDistMax () { return distMax; } + public int getDistStd () { + return std; + } + + public String getSaison () { + return saison; + } + + public String getPhaseJour () { + return phaseJour; + } public List<String> getArea () { return area; } diff --git a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java index 7cea6905c35abdcff5d6e3ad71dd8267774b3952..845ce9563d577202283f16a533c1ddddaea5eff7 100644 --- a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java +++ b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java @@ -8,6 +8,7 @@ import fr.cemagref.ohoui.annotations.Description; import fr.cemagref.ohoui.filters.NoTransientField; import fr.cemagref.ohoui.swing.OhOUI; import fr.cemagref.ohoui.swing.OhOUIDialog; +import fr.cemagref.simaqualife.kernel.util.TransientParameters; import fr.cemagref.simaqualife.pilot.Pilot; import java.awt.Color; @@ -71,6 +72,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C private transient double shapeOriginalWidth, shapeOriginalHeight; private transient double shapeAspectRatio; + @SuppressWarnings("unused") private transient double rescaleFactorWithOriginal; public Movement2DWithinShapeObserver(int margin) { @@ -99,8 +101,8 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C return display; } - - public void init() { + @TransientParameters.InitTransientParameters + public void init(Pilot pilot) { display = new DisplayComponent(); display.setVisible(false); @@ -131,7 +133,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C e.printStackTrace(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //this.generalPath = new GeneralPath(((AsShapeConvertible)Pilot.getAquaticWorld().getEnvironment()).getShape()); + //this.generalPath = new GeneralPath((Shape) ((AsShapeConvertible) pilot.getAquaticWorld().getEnvironment()).getShape()); // original dimension storage @@ -279,7 +281,8 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C } } - + + oneShot = true; } @@ -306,4 +309,12 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C } } + + @Override + public void init() { + // TODO Auto-generated method stub + + } + + } diff --git a/src/main/java/pikelake/environment/NychtemeralTime.java b/src/main/java/pikelake/environment/NychtemeralTime.java deleted file mode 100644 index 6da49ea84306ea2645b56794b41f2744d8c3b58a..0000000000000000000000000000000000000000 --- a/src/main/java/pikelake/environment/NychtemeralTime.java +++ /dev/null @@ -1,41 +0,0 @@ -package pikelake.environment; - -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; - -import uk.me.jstott.coordconv.LatitudeLongitude; -import uk.me.jstott.sun.Sun; -import uk.me.jstott.util.JulianDateConverter; - -public class NychtemeralTime { - - protected final static NychtemeralTime simulationTimeInstance = new NychtemeralTime(); - - - // TODO le faire remonter dans estuaire ?? - private LatitudeLongitude LAT_LONG_ROYAN = new LatitudeLongitude(LatitudeLongitude.NORTH,45,38,0,LatitudeLongitude.WEST,1,3,0); - private TimeZone GMT = TimeZone.getTimeZone("Europe/London"); - - private Calendar startSimulationTime = new GregorianCalendar(1998,1,22,0,0,0); - - public static NychtemeralTime getInstance(){ - return simulationTimeInstance; - } - - - public boolean isNight(int currentTime){ - Calendar date = startSimulationTime; - date.add(Calendar.SECOND,currentTime); - double currentSecondInTheDay = (date.get(Calendar.HOUR)*60 + date.get(Calendar.MINUTE))*60 + date.get(Calendar.SECOND); - double julianDay= JulianDateConverter.dateToJulian(date); - uk.me.jstott.sun.Time morningTwilightTime= Sun.morningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, - GMT,false); - uk.me.jstott.sun.Time eveningTwilightTime= Sun.eveningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, - GMT,false); - double morningTwilightSecondInTheDay = (morningTwilightTime.getHours()*60 + morningTwilightTime.getMinutes())*60 + morningTwilightTime.getSeconds(); - double eveningTwilightSecondInTheDay = (eveningTwilightTime.getHours()*60 + eveningTwilightTime.getMinutes())*60 + eveningTwilightTime.getSeconds(); - - return ((currentSecondInTheDay<morningTwilightSecondInTheDay) & (currentSecondInTheDay > eveningTwilightSecondInTheDay)); - } -} diff --git a/src/main/java/pikelake/environment/Time.java b/src/main/java/pikelake/environment/Time.java index 62ffaa646e07f819e29ee352f0503184faa05b77..315e462a3d87726bb1723264f60fc26757a9708b 100644 --- a/src/main/java/pikelake/environment/Time.java +++ b/src/main/java/pikelake/environment/Time.java @@ -1,8 +1,134 @@ package pikelake.environment; -public class Time { +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.TimeZone; - - - +import pikelake.pikes.Pike; +import pikelake.pikes.PikesGroup; +import uk.me.jstott.coordconv.LatitudeLongitude; +import uk.me.jstott.sun.Sun; +import uk.me.jstott.util.JulianDateConverter; +import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; +import fr.cemagref.simaqualife.pilot.Pilot; + + +public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { + + // Donnees definissant la zone d'etude (lac des Bariousses) + private TimeZone GMT = TimeZone.getTimeZone("Europe/Paris"); + private LatitudeLongitude LAT_LONG_ROYAN = new LatitudeLongitude(LatitudeLongitude.NORTH,45,33,55,LatitudeLongitude.WEST,1,49,16); + + // Date de debut de la simulation + private Calendar startSimulationTime = new GregorianCalendar(2012,1,1,0,0,0); + public static long yearOfBegin = 2012 ; + + + protected final static Time simulationTimeInstance = new Time(); + public static enum PhaseJour {AUBE, JOUR, CREP, NUIT}; + public static enum Season {PRINTEMPS, ETE, AUTOMNE, HIVER}; + public static enum Mois {JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECRMBRE}; + public static int mois = 0, jour = 0, saison = 0, annee = 0, phaseJour = 0, heure = 0; + + + @Override + public void doProcess (PikesGroup group) { /////// heure,jour,mois,saison, annee + Calendar date = startSimulationTime; + + long nbrIter = group.getPilot().getCurrentTime(); + + heure = (int) nbrIter % 24; + + ////////////////// Calcul de la phase de la journee + //System.out.println(isNight((int) nbrIter)); + + jour = (int) Math.ceil(nbrIter / 24.); + + + while (jour>365) { + yearOfBegin = yearOfBegin + 1; + jour = jour - 365; + } + + if (jour <= 31) mois = 0; // Janv + else if (jour <= 59) mois = 1; // Fev + else if (jour <= 90) mois = 2; // Mars + else if (jour <= 120) mois = 3; // Avril + else if (jour <= 151) mois = 4; // Mai + else if (jour <= 181) mois = 5; // Juin + else if (jour <= 212) mois = 6; // Juillet + else if (jour <= 243) mois = 7; // Aout + else if (jour <= 273) mois = 8; // Sept + else if (jour <= 304) mois = 9; // Oct + else if (jour <= 334) mois = 10; // Nov + else if (jour <= 365) mois = 11; // Dec + else mois = 0; + + switch (mois) { + case 2 : + case 3 : + case 4 : saison = 0; + break; + case 5 : + case 6 : + case 7 : saison = 1; + break; + case 8 : + case 9 : + case 10: saison = 2; + break; + case 11: + case 0 : + case 1 : + default: saison = 3; + break; + } + + System.out.println(yearOfBegin + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + heure); + } + + public static Mois getMois () { + return Mois.values()[mois]; + } + + public static Season getSeason(){ + return Season.values()[saison]; + } + + + public static long getYear(){ + return yearOfBegin; + } + + + + + public static long getNbYearFromBegin(long time){ + return (long) Math.floor(time / Season.values().length); + } + + public static double getSeasonDuration(){ + return 1./ Season.values().length; + } + + + public static Time getInstance(){ + return simulationTimeInstance; + } + + + public boolean isNight(int currentTime){ + + Calendar date = startSimulationTime; + date.add(Calendar.SECOND,currentTime); + double currentSecondInTheDay = (date.get(Calendar.HOUR)*60 + date.get(Calendar.MINUTE))*60 + date.get(Calendar.SECOND); + double julianDay= JulianDateConverter.dateToJulian(date); + uk.me.jstott.sun.Time morningTwilightTime= Sun.morningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, GMT,false); + uk.me.jstott.sun.Time eveningTwilightTime= Sun.eveningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, GMT,false); + double morningTwilightSecondInTheDay = (morningTwilightTime.getHours()*60 + morningTwilightTime.getMinutes())*60 + morningTwilightTime.getSeconds(); + double eveningTwilightSecondInTheDay = (eveningTwilightTime.getHours()*60 + eveningTwilightTime.getMinutes())*60 + eveningTwilightTime.getSeconds(); + + return ((currentSecondInTheDay<morningTwilightSecondInTheDay) & (currentSecondInTheDay > eveningTwilightSecondInTheDay)); + } + } diff --git a/src/main/java/pikelake/environment/temp2.java b/src/main/java/pikelake/environment/temp2.java deleted file mode 100644 index 47b218979f5a010c4089866c9947db6d2ec290eb..0000000000000000000000000000000000000000 --- a/src/main/java/pikelake/environment/temp2.java +++ /dev/null @@ -1,6 +0,0 @@ -package pikelake.environment; - -public class temp2 { - -} - diff --git a/src/main/java/pikelake/pikes/PikeGrowthProcess.java b/src/main/java/pikelake/pikes/PikeGrowthProcess.java index 6d4dd8496b65e783187b3ad94c36d42cad5c00e3..73b6ff25aaf425b68e356c0cda6e49fc2607895d 100644 --- a/src/main/java/pikelake/pikes/PikeGrowthProcess.java +++ b/src/main/java/pikelake/pikes/PikeGrowthProcess.java @@ -14,6 +14,8 @@ public class PikeGrowthProcess extends AquaNismsGroupProcess<Pike,PikesGroup> { */ @Override public void doProcess(PikesGroup group) { + System.out.println("PikeGrowthProcess"); + for (Pike pike : group.getAquaNismsList()){ pike.incAge(); //System.out.print(" "+ (double) pike.getAge()/12. +"y "+pike.getWeight()+ " " ); diff --git a/src/main/java/pikelake/pikes/PikeHuntProcess.java b/src/main/java/pikelake/pikes/PikeHuntProcess.java index c8a995ff7a5953c98d2984285465d928b5db04b7..7ceac433f782471ded1bfbef913ed4693907ee32 100644 --- a/src/main/java/pikelake/pikes/PikeHuntProcess.java +++ b/src/main/java/pikelake/pikes/PikeHuntProcess.java @@ -5,6 +5,8 @@ import java.util.Comparator; //import java.util.List; + + //import pikelake.Cell; import umontreal.iro.lecuyer.probdist.UniformDist; import umontreal.iro.lecuyer.randvar.UniformGen; @@ -24,14 +26,17 @@ LoopAquaNismsGroupProcess<Pike, AquaNismsGroup<Pike, ?>> { * <code>satiety</code> ratio of the pike weigth which stops eating * preys */ + @SuppressWarnings("unused") private double satiety = 0.10; @SuppressWarnings("unused") transient private UniformGen uniformGen; @Override - protected void doProcess(Pike pike, - AquaNismsGroup<Pike, ?> group) { + protected void doProcess(Pike pike, AquaNismsGroup<Pike, ?> group) { + + System.out.println("PikeHuntProcess"); + // Cell pikeCell = pike.getPosition(); /* if (pikeCell.getPreys().size() > 0) { //System.out.print(" " + pikeCell.getPreys().size() +" preys available in cell "); diff --git a/src/main/java/pikelake/pikes/PikeMortalityProcess.java b/src/main/java/pikelake/pikes/PikeMortalityProcess.java index 0056803300e7735680d33bf64e6412cabe94713a..d430fe51bea0c5d0cf7010f28fd36e50683ea370 100644 --- a/src/main/java/pikelake/pikes/PikeMortalityProcess.java +++ b/src/main/java/pikelake/pikes/PikeMortalityProcess.java @@ -9,6 +9,8 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; public class PikeMortalityProcess extends AquaNismsGroupProcess<Pike, PikesGroup>{ public void doProcess(PikesGroup group) { + System.out.println("PikeMortalityProcess"); + List<Pike> deadPike = new ArrayList<Pike>(); for (Pike pike: group.getAquaNismsList()){ double ratio = (12. * pike.getWeight() / (double) (pike.getAge()+12)); diff --git a/src/main/java/pikelake/pikes/PikeMovement.java b/src/main/java/pikelake/pikes/PikeMovement.java index 62ffad75158917f41dc1edf40a4f62ae997f8ca3..c349300048fae98f88e7514e5603b2cc2d492b92 100644 --- a/src/main/java/pikelake/pikes/PikeMovement.java +++ b/src/main/java/pikelake/pikes/PikeMovement.java @@ -7,14 +7,15 @@ import java.util.ArrayList; import java.util.List; import pikelake.Cell; +import pikelake.environment.Time; import umontreal.iro.lecuyer.probdist.UniformDist; import umontreal.iro.lecuyer.randvar.UniformGen; import fr.cemagref.simaqualife.pilot.Pilot; public class PikeMovement extends LoopAquaNismsGroupProcess<Pike, PikesGroup> { + @SuppressWarnings("unused") private double basicMovingRate; - private int distance; transient private UniformGen uniformGen; public PikeMovement(Pilot pilot) { @@ -28,23 +29,19 @@ public class PikeMovement extends LoopAquaNismsGroupProcess<Pike, PikesGroup> { @Override protected void doProcess(Pike pike, PikesGroup group) { - //System.out.println("Init déplacement"); double cellSuitability = pike.getSuitabilityForPike(pike.getPosition()); - final List<Cell> surrounding = group.getEnvironment().getNeighbours(pike.getPosition(), distance); - - //System.out.println(cellSuitability); - - + final List<Cell> surrounding = group.getEnvironment().getNeighbours(pike.getPosition()); + // the first possiblity is the cell where the prey is List<Cell> possibilities = new ArrayList<Cell>(); possibilities.add(pike.getPosition()); - // identify the destination possibilities in the neighbouring // with the highest suitability for (Cell cell : surrounding) { + double currentCellSuitability = pike.getSuitabilityForPike(cell); //System.out.println(currentCellSuitability); diff --git a/src/main/java/pikelake/pikes/PikeObservationProcess.java b/src/main/java/pikelake/pikes/PikeObservationProcess.java index c7c24b2d0aafc275514d95f5ec9289239391b148..9a4992d275221cc7b7e570d55a6ca7ac0c223eed 100644 --- a/src/main/java/pikelake/pikes/PikeObservationProcess.java +++ b/src/main/java/pikelake/pikes/PikeObservationProcess.java @@ -5,6 +5,8 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; public class PikeObservationProcess extends AquaNismsGroupProcess<Pike,PikesGroup> { public void doProcess(PikesGroup pikesGroup) { + System.out.println("PikeObservationProcess"); + pikesGroup.calculatePikesBiomass(); pikesGroup.calculatePikesNumber(); diff --git a/src/main/java/pikelake/pikes/PikePlopProcess.java b/src/main/java/pikelake/pikes/PikePlopProcess.java index 3edb68c335a828c65f754a8dc571d22a0960ff7c..2f662a72088dda9f05acbc7546e03deb4fe01215 100644 --- a/src/main/java/pikelake/pikes/PikePlopProcess.java +++ b/src/main/java/pikelake/pikes/PikePlopProcess.java @@ -7,6 +7,8 @@ public class PikePlopProcess extends AquaNismsGroupProcess<Pike,PikesGroup> { private int temporisation = 3000; // in ms public void doProcess(PikesGroup object) { + System.out.println("PikePlopProcess"); + try { Thread.sleep(temporisation); } catch (InterruptedException e) { diff --git a/src/main/java/pikelake/pikes/PikeReproductionProcess.java b/src/main/java/pikelake/pikes/PikeReproductionProcess.java index 81786a3521ac919586421c4d484943506a761592..5841035929c4bd6187ee8867f31ddeb62455371e 100644 --- a/src/main/java/pikelake/pikes/PikeReproductionProcess.java +++ b/src/main/java/pikelake/pikes/PikeReproductionProcess.java @@ -5,7 +5,6 @@ import java.util.List; import umontreal.iro.lecuyer.probdist.PoissonDist; import umontreal.iro.lecuyer.randvar.PoissonGen; - import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; import fr.cemagref.simaqualife.pilot.Pilot; @@ -33,6 +32,8 @@ public class PikeReproductionProcess extends AquaNismsGroupProcess<Pike,PikesGro } public void doProcess(PikesGroup group) { + System.out.println("PikeReproductionProcess"); + int offspring; if (1+ ((group.getPilot().getCurrentTime()-1) % 12) == group.getMonthOfBirth()){ List<Pike> offsprings = new ArrayList<Pike>(); diff --git a/src/main/java/pikelake/pikes/PikesPopulateProcess.java b/src/main/java/pikelake/pikes/PikesPopulateProcess.java index 917bd164650ef1674bb4f1092a7b69f73bdd7ef6..454b35ea24c83f5dce0c60265009680d314f9a14 100644 --- a/src/main/java/pikelake/pikes/PikesPopulateProcess.java +++ b/src/main/java/pikelake/pikes/PikesPopulateProcess.java @@ -1,7 +1,6 @@ package pikelake.pikes; import pikelake.Cell; -import pikelake.environment.AreaMovement; import umontreal.iro.lecuyer.probdist.UniformDist; import umontreal.iro.lecuyer.randvar.UniformGen; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;