123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package garten.model;
-
- import garten.view.FlaecheBeet;
- import garten.view.FlaechePflanzen;
- import garten.view.FlaecheWeg;
- import java.util.ArrayList;
-
- /**
- *
- * @author Jan
- */
- public class Garten extends Kompositum
- {
- private ArrayList<Weg> wege;
- private ArrayList<Beet> beete;
- private ArrayList<Pflanze> pflanzen;
-
- private Pflanze1 pfl1;
- private Pflanze2 pfl2;
- private Pflanze3 pfl3;
-
- FlaecheBeet flbeet;
- FlaecheWeg flweg;
- FlaechePflanzen flpfl;
-
- public Garten(FlaecheBeet flbeet,FlaecheWeg flweg,FlaechePflanzen flpfl)
- {
- wege = new ArrayList();
- beete = new ArrayList();
- pflanzen = new ArrayList();
-
- this.flbeet = flbeet;
- this.flweg = flweg;
- this.flpfl = flpfl;
- }
- //Funktionen Beete
- public void hinzufuegenBeet(int x, int y, int a, int b)
- {
- Beet neuesBeet = new Beet(x, y, a, b);
- beete.add(neuesBeet);
- }
- public ArrayList<Beet> getBeete()
- {
- return beete;
- }
- public void zeichneBeete()
- {
- flbeet.zeichneBeete(beete);
- }
- //Funktionen Wege
- public void hinzufuegenWeg(int sx, int sy, int ex, int ey)
- {
- Weg neuerWeg = new Weg(sx, sy, ex, ey);
- wege.add(neuerWeg);
- }
- public void zeichneWeg()
- {
- flweg.zeichneWeg(wege);
- }
- //Funktionen Pflanzen
- public void hinzufuegenPflanze(Pflanze pflanze)
- {
- pflanzen.add(pflanze);
- }
- public void zeichnePflanzen()
- {
- flpfl.setPflanzen(pflanzen);
- }
- public void randomBepflanzung()
- {
- for (Beet b : beete)
- {
- int randomAlter = (int) (Math.random() * 3 + 1);
- int randomTyp = (int) (Math.random() * 3 + 1);
- Boolean bepflanzung = true;
- Boolean versetzt = true;
- int[] temp = b.getKoordinaten();
-
- int tempx = temp[0]+10;
- int tempy = temp[1]+20;
- int tempxrand = temp[2] + temp[0];
- int tempyrand = temp[3] + temp[1];
-
- int deltax = (temp[2]-40)/((temp[2]-40)/40);
- int deltay = (temp[3]-40)/((temp[3]-40)/50);
-
- do
- {
- if (randomTyp == 1)
- {
- pfl1 = new Pflanze1(tempx, tempy, randomAlter);
- hinzufuegenPflanze(pfl1);
- }
- else if (randomTyp == 2)
- {
- pfl2 = new Pflanze2(tempx, tempy, randomAlter);
- hinzufuegenPflanze(pfl2);
- }
- else if (randomTyp == 3)
- {
- pfl3 = new Pflanze3(tempx, tempy, randomAlter);
- hinzufuegenPflanze(pfl3);
- }
- tempx += deltax;
- if (tempx > tempxrand )
- {
- if (versetzt)
- {
- tempx = temp[0] +30;
- versetzt = false;
- }
- else
- {
- tempx = temp[0]+20;
- versetzt = true;
- }
- tempy += deltay;
- }
- if (tempy > tempyrand)
- {
- bepflanzung = false;
- }
- }
- while (bepflanzung);
- }
-
- }
- /*
- public Pflanze naechstePflanze(int x, int y)
- {
- Pflanze diePflanze = null;
- int abstand = 1000;
- for(int i = 0; i < pflanzen.size(); i++)
- {
- if(pflanzen.get(i).getPositionx()-x + pflanzen.get(i).getPositiony()-y < abstand)
- {
- print(pflanzen.size());
- diePflanze = pflanzen.get(i);
- abstand = Math.abs(x-pflanzen.get(i).getPositionx()) + Math.abs(y-pflanzen.get(i).getPositiony()) ;
- print(pflanzen.get(i).getPositionx());
- print(pflanzen.get(i).getPositiony());
- }
- }
-
- if(abstand < 20)
- {
- return diePflanze;
- }
- else
- {
- return null;
- }
- }
-
- public void zeichnen()
- {
- for(int i = 0; i < wege.size(); i++)
- {
- wege.get(i).zeichnen();
- }
-
- for(int i = 0; i < beete.size(); i++)
- {
- beete.get(i).zeichnen();
- }
-
- }*/
-
- }
|