Esempio n. 1
0
 protected void placeSheeps() {
   sheeps = new ArrayList<>(par.numSheeps);
   double range = par.arenaSize / par.numSheeps;
   for (int i = 0; i < par.numSheeps; i++) {
     Sheep sheep = new Sheep(this, field);
     Double2D newLoc = null;
     if (par.randomSheepPosition) {
       newLoc =
           new Double2D(
               par.sheepX * par.arenaSize,
               i * range
                   + sheep.getRadius()
                   + random.nextDouble() * (range - sheep.getRadius() * 2));
     } else {
       newLoc = new Double2D(par.sheepX * par.arenaSize, i * range + range / 2);
     }
     if (par.sheepPositionOffset > 0) {
       Double2D deviation =
           new Double2D(
               (random.nextDouble() * 2 - 1) * par.sheepPositionOffset,
               (random.nextDouble() * 2 - 1) * par.sheepPositionOffset);
       newLoc = newLoc.add(deviation);
     }
     sheep.setLocation(newLoc);
     sheep.setStopper(schedule.scheduleRepeating(sheep));
     sheeps.add(sheep);
   }
   activeSheeps = new ArrayList<>(sheeps);
 }