Hallo allerseits,
ich versuche eine Klasse zu schreiben, in der zuerst ein zweidimensionales array erstellt wird, in der dann alle Werte auf "true" gesetzt werden (Es werden "Bäume gepflanzt"). Danach soll in einer Main Methode eine Position angegeben werden, in der der Wert wieder auf "false" gesetzt wird (der "Baum" wird "gefällt"). Anschließend soll das array als String an die Main zurück geliefert werden.
Mein Problem ist, dass ich andauernd eine "OutOfBounds" Exceptions kriege und ich einfach nicht verstehe warum. Sieht einer von euch meinen Fehler?
Hier mein Code
Und hier meine Main:
ich versuche eine Klasse zu schreiben, in der zuerst ein zweidimensionales array erstellt wird, in der dann alle Werte auf "true" gesetzt werden (Es werden "Bäume gepflanzt"). Danach soll in einer Main Methode eine Position angegeben werden, in der der Wert wieder auf "false" gesetzt wird (der "Baum" wird "gefällt"). Anschließend soll das array als String an die Main zurück geliefert werden.
Mein Problem ist, dass ich andauernd eine "OutOfBounds" Exceptions kriege und ich einfach nicht verstehe warum. Sieht einer von euch meinen Fehler?
Hier mein Code
Java:
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) //Hier wirft der Compiler mir den Fehler
out = out + "Baum ";
else
out = out + "Kein Baum ";
if (j == breite)
out = out + "\n";
}
}
return out;
}
}
Und hier meine Main:
Java:
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());
}
}