Пример #1
0
  public static void main(String[] args) {
    //		create a world
    World world = new World(numFarmsInWorld);

    //		initialize both farms
    Farm farm1 = world.getAFarm(0);

    //		create the FarmObjects
    Cow cow = new Cow("cow ");
    FlyingCow fCow = new FlyingCow("fcow");
    NocturnalCow nCow = new NocturnalCow("ncow");
    Grass grass = new Grass();
    PoisonedGrass pGrass = new PoisonedGrass();

    //		initialize fObjects that contains all farm animals on a farm
    FarmObject[] fObjects = {cow, fCow, nCow, grass, pGrass};

    //		populate both farms
    farm1.populateFarm(FARM_ROWS, FARM_COLS, fObjects);

    //		print initial farm states
    System.out.println("Initial State of Farm1: ");
    System.out.println("------------------------");
    printFarmState(farm1.getFarmGrid());
    System.out.println("------------------------");

    world.simulateWorld(HOURS);

    //		print final farm states after HOURS hours
    System.out.println("Final State of Farm1: ");
    System.out.println("------------------------");
    printFarmState(farm1.getFarmGrid());
    System.out.println("------------------------");
  }
Пример #2
0
 private void addFarm(Farm farm) {
   for (Farm f : farms) {
     if (farm.equals(f)) {
       return;
     }
   }
   if (farms.size() < maxFarms) {
     farms.add(farm);
     System.out.println("found farm");
   }
   if (farms.size() == maxFarms) {
     hasAllFarms = true;
   }
 }
 private static Farm cloneFarm(Farm farm) {
   return new Farm(
       farm.getName(),
       farm.getDescription(),
       farm.getLevel(),
       farm.getUpgradeCost(),
       farm.getCost(),
       farm.getProduction().clone());
 }
Пример #4
0
  @Override
  public void doLogic(int i) {
    super.doLogic(i);

    if (!hasAllFarms && i % 10 == 0) {
      lookForFarms();
    }

    if (super.getCurrentWorkersAmount() < super.getMaxWorkers()) {
      super.callWorker();
    }

    for (LittleMan worker : getCurrentWorkers()) {
      if (!worker.hasMission()) {
        // fabricate asked first, highest priority
        if (!outStock.isFull() && inStock.getExpectedStock() > 0) {
          worker.addMission(
              new Mission_Fabricate(
                  getWorkPos(), 30, this, Grain.class.getSimpleName(), new Flour()));
        } else {
          // check farms for grain and collect it
          for (Farm f : farms) {
            // System.out.println("farm outstock: "+ f.getOutStock().getExpectedStock() +"  mill
            // instock: "+ inStock.getExpectedStock() +"   limit: "+ inStock.getLimit());
            if (f.getOutStock().getExpectedStock() > 0
                && inStock.getExpectedStock() < inStock.getLimit()) {
              worker.addMission(
                  new Mission_PickUp(
                      f.getOutStock(), inStock, Grain.class.getSimpleName(), getWorkers().get(0)));
              break;
            }
          }
        }
      }
    }
  }