You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Garten.java 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package garten.model;
  7. import garten.view.FlaecheBeet;
  8. import garten.view.FlaechePflanzen;
  9. import garten.view.FlaecheWeg;
  10. import java.util.ArrayList;
  11. /**
  12. *
  13. * @author Jan
  14. */
  15. public class Garten extends Kompositum
  16. {
  17. private ArrayList<Weg> wege;
  18. private ArrayList<Beet> beete;
  19. private ArrayList<Pflanze> pflanzen;
  20. private Pflanze1 pfl1;
  21. private Pflanze2 pfl2;
  22. private Pflanze3 pfl3;
  23. FlaecheBeet flbeet;
  24. FlaecheWeg flweg;
  25. FlaechePflanzen flpfl;
  26. public Garten(FlaecheBeet flbeet,FlaecheWeg flweg,FlaechePflanzen flpfl)
  27. {
  28. wege = new ArrayList();
  29. beete = new ArrayList();
  30. pflanzen = new ArrayList();
  31. this.flbeet = flbeet;
  32. this.flweg = flweg;
  33. this.flpfl = flpfl;
  34. }
  35. //Funktionen Beete
  36. public void hinzufuegenBeet(int x, int y, int a, int b)
  37. {
  38. Beet neuesBeet = new Beet(x, y, a, b);
  39. beete.add(neuesBeet);
  40. }
  41. public ArrayList<Beet> getBeete()
  42. {
  43. return beete;
  44. }
  45. public void zeichneBeete()
  46. {
  47. flbeet.zeichneBeete(beete);
  48. }
  49. //Funktionen Wege
  50. public void hinzufuegenWeg(int sx, int sy, int ex, int ey)
  51. {
  52. Weg neuerWeg = new Weg(sx, sy, ex, ey);
  53. wege.add(neuerWeg);
  54. }
  55. public void zeichneWeg()
  56. {
  57. flweg.zeichneWeg(wege);
  58. }
  59. //Funktionen Pflanzen
  60. public void hinzufuegenPflanze(Pflanze pflanze)
  61. {
  62. pflanzen.add(pflanze);
  63. }
  64. public void zeichnePflanzen()
  65. {
  66. flpfl.setPflanzen(pflanzen);
  67. }
  68. public void randomBepflanzung()
  69. {
  70. for (Beet b : beete)
  71. {
  72. int randomAlter = (int) (Math.random() * 3 + 1);
  73. int randomTyp = (int) (Math.random() * 3 + 1);
  74. Boolean bepflanzung = true;
  75. Boolean versetzt = true;
  76. int[] temp = b.getKoordinaten();
  77. int tempx = temp[0]+10;
  78. int tempy = temp[1]+20;
  79. int tempxrand = temp[2] + temp[0];
  80. int tempyrand = temp[3] + temp[1];
  81. int deltax = (temp[2]-40)/((temp[2]-40)/40);
  82. int deltay = (temp[3]-40)/((temp[3]-40)/50);
  83. do
  84. {
  85. if (randomTyp == 1)
  86. {
  87. pfl1 = new Pflanze1(tempx, tempy, randomAlter);
  88. hinzufuegenPflanze(pfl1);
  89. }
  90. else if (randomTyp == 2)
  91. {
  92. pfl2 = new Pflanze2(tempx, tempy, randomAlter);
  93. hinzufuegenPflanze(pfl2);
  94. }
  95. else if (randomTyp == 3)
  96. {
  97. pfl3 = new Pflanze3(tempx, tempy, randomAlter);
  98. hinzufuegenPflanze(pfl3);
  99. }
  100. tempx += deltax;
  101. if (tempx > tempxrand )
  102. {
  103. if (versetzt)
  104. {
  105. tempx = temp[0] +30;
  106. versetzt = false;
  107. }
  108. else
  109. {
  110. tempx = temp[0]+20;
  111. versetzt = true;
  112. }
  113. tempy += deltay;
  114. }
  115. if (tempy > tempyrand)
  116. {
  117. bepflanzung = false;
  118. }
  119. }
  120. while (bepflanzung);
  121. }
  122. }
  123. /*
  124. public Pflanze naechstePflanze(int x, int y)
  125. {
  126. Pflanze diePflanze = null;
  127. int abstand = 1000;
  128. for(int i = 0; i < pflanzen.size(); i++)
  129. {
  130. if(pflanzen.get(i).getPositionx()-x + pflanzen.get(i).getPositiony()-y < abstand)
  131. {
  132. print(pflanzen.size());
  133. diePflanze = pflanzen.get(i);
  134. abstand = Math.abs(x-pflanzen.get(i).getPositionx()) + Math.abs(y-pflanzen.get(i).getPositiony()) ;
  135. print(pflanzen.get(i).getPositionx());
  136. print(pflanzen.get(i).getPositiony());
  137. }
  138. }
  139. if(abstand < 20)
  140. {
  141. return diePflanze;
  142. }
  143. else
  144. {
  145. return null;
  146. }
  147. }
  148. public void zeichnen()
  149. {
  150. for(int i = 0; i < wege.size(); i++)
  151. {
  152. wege.get(i).zeichnen();
  153. }
  154. for(int i = 0; i < beete.size(); i++)
  155. {
  156. beete.get(i).zeichnen();
  157. }
  158. }*/
  159. }