Hallo allerseits,
Ich versuche eine Klasse zu schreiben, in der ein zweidimensionales Array erschaffen wird, in denen die einzelnen Positionen erst einmal alle den Wert "true" erhalten (Bäume werden gepflanzt). Dann soll durch die Main Methode an einer bestimmen Position der Wert wieder in "false" geändert werden (der Baum wird gefällt). Anschließend soll das Array in einen String umgewandelt werden und so wieder an die Main-Methode zurückgeliefert werden. Allerdings wirft der Compiler mir andauernd eine "OutOfBoundsException" ich sehe allerdings nicht, wo und warum das sein soll.
Ich sehe quasi den Wald vor lauter Bäumen nicht mehr (jaja, ich weiß, mießer Wortwitz, aber passend):
Wäre nett, wenn einer von euch den Fehler erkennen könnte und mir das ganze erklären könnte =)
Hier die Methoden:
Alles anzeigen
Und meine Main dazu:
Alles anzeigen
Ich versuche eine Klasse zu schreiben, in der ein zweidimensionales Array erschaffen wird, in denen die einzelnen Positionen erst einmal alle den Wert "true" erhalten (Bäume werden gepflanzt). Dann soll durch die Main Methode an einer bestimmen Position der Wert wieder in "false" geändert werden (der Baum wird gefällt). Anschließend soll das Array in einen String umgewandelt werden und so wieder an die Main-Methode zurückgeliefert werden. Allerdings wirft der Compiler mir andauernd eine "OutOfBoundsException" ich sehe allerdings nicht, wo und warum das sein soll.
Ich sehe quasi den Wald vor lauter Bäumen nicht mehr (jaja, ich weiß, mießer Wortwitz, aber passend):
Wäre nett, wenn einer von euch den Fehler erkennen könnte und mir das ganze erklären könnte =)
Hier die Methoden:
Quellcode
- public class BaeumeFaellen {
- int x = 0, y = 0, hoehe, breite;
- private boolean [][]array = new boolean [hoehe][breite];
- public BaeumeFaellen(int x, int y, int hoehe, int breite) {
- this.x = x;
- this.y = y;
- this.hoehe = hoehe;
- this.breite = breite;
- }
- int getX() {
- return x;
- }
- int getY() {
- return y;
- }
- boolean [][]pflanzen() {
- for (int i = 0; i <= hoehe; i++) {
- for (int j = 0; j <= breite; j++)
- array[i][j] = true;
- }
- return array;
- }
- boolean innerhalb() {
- if (getX() <= hoehe && getY() <= breite)
- return true;
- else
- return false;
- }
- boolean [][]faellen() {
- if (innerhalb())
- pflanzen()[getX()][getY()] = false;
- return pflanzen();
- }
- public String toString() {
- String out = "";
- for (int i = 0; i <= hoehe; i++){
- for (int j = 0; j <= breite; j++){
- if (array[i][j] == true)
- out = out + "Baum ";
- else
- out = out + "Kein Baum ";
- if (j == breite)
- out = out + "\n";
- }
- }
- return out;
- }
- }
Und meine Main dazu:
Quellcode
- import javax.swing.*;
- public class BaeumeTest {
- public static void main (String[] args) {
- int x,y,hoehe,breite;
- hoehe = Integer.parseInt(JOptionPane.showInputDialog("Höhe des Feldes: "));
- breite = Integer.parseInt(JOptionPane.showInputDialog("breite des Feldes: "));
- x = Integer.parseInt(JOptionPane.showInputDialog("x-te Position: "));
- y = Integer.parseInt(JOptionPane.showInputDialog("y-te Position: "));
- BaeumeFaellen baum = new BaeumeFaellen(x, y, hoehe, breite);
- JOptionPane.showMessageDialog(null, baum.toString());
- }
- }