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.

Pflanzengruppe.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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 java.util.ArrayList;
  8. /**
  9. *
  10. * @author Jan
  11. */
  12. class Pflanzengruppe
  13. {
  14. private int alter;
  15. private int pflanzentyp;
  16. private int startlaenge;
  17. private ArrayList<Pflanze> pflanzen;
  18. private Beet beet;
  19. Pflanze pfl;
  20. Pflanzengruppe(int pflanzentyp, int alter, int startlaenge, Beet beet)
  21. {
  22. System.out.println("Konstruktor Pflanzengruppe");
  23. this.alter = alter;
  24. this.pflanzentyp = pflanzentyp;
  25. this.startlaenge = startlaenge;
  26. pflanzen = new ArrayList<>();
  27. this.beet = beet;
  28. beginnebepflanzung();
  29. }
  30. public void addPflanze(Pflanze pfl)
  31. {
  32. pflanzen.add(pfl);
  33. }
  34. public void removePflanze(Pflanze pfl)
  35. {
  36. pflanzen.remove(pfl);
  37. }
  38. public void beginnebepflanzung()
  39. {
  40. Boolean bepflanzung = true;
  41. Boolean versetzt = true;
  42. int[] temp = beet.getKoordinaten();
  43. int tempx = temp[0] + 10;
  44. int tempy = temp[1] + 20;
  45. int tempxrand = temp[2] + temp[0];
  46. int tempyrand = temp[3] + temp[1];
  47. try
  48. {
  49. int deltax = (temp[2] - 40) / ((temp[2] - 40) / 40);
  50. int deltay = (temp[3] - 40) / ((temp[3] - 40) / 50);
  51. do
  52. {
  53. switch (pflanzentyp)
  54. {
  55. case 1:
  56. pfl = new Gaertner1(tempx, tempy, alter,startlaenge).pflanzen();
  57. break;
  58. case 2:
  59. pfl = new Gaertner2(tempx, tempy, alter,startlaenge).pflanzen();
  60. break;
  61. case 3:
  62. pfl = new Gaertner3(tempx, tempy, alter,startlaenge).pflanzen();
  63. break;
  64. default:
  65. break;
  66. }
  67. pflanzen.add(pfl);
  68. tempx += deltax;
  69. if (tempx > tempxrand)
  70. {
  71. if (versetzt)
  72. {
  73. tempx = temp[0] + 30;
  74. versetzt = false;
  75. }
  76. else
  77. {
  78. tempx = temp[0] + 20;
  79. versetzt = true;
  80. }
  81. tempy += deltay;
  82. }
  83. if (tempy > tempyrand)
  84. {
  85. bepflanzung = false;
  86. }
  87. }
  88. while (bepflanzung);
  89. beet.setPflanzengruppeBeet(this);
  90. }
  91. catch (ArithmeticException e)
  92. {
  93. System.out.println("Beet zu klein");
  94. }
  95. }
  96. public ArrayList<Pflanze> getPflanzeninGruppe()
  97. {
  98. return pflanzen;
  99. }
  100. }