Java / Schiffe versenken: Wie kann ich dafür sorgen, dass die Schiffe nur horizontal und vertikal platziert werden können?
Ich habe diesen Schiffe-versenken-Code geschrieben. Jetzt weiß ich allerdings nicht, wie ich dafür sorgen kann, dass die Schiffe nur horizontal und vertikal plaziert werden können. Das soll durch if-Verzweigungen geregelt werden.
import javax.swing.JOptionPane;
public class Schiffeversenken {
public static void main(String[] args) {
// Spielfelderstellung
int größefeld = Integer.parseInt(JOptionPane.showInputDialog("Wie groß soll das Spielfeld sein?"));
String[][] spielerarray = new String[größefeld][größefeld];
// Spielfeld leere Felder Befüllung
for (int i = 0; i < spielerarray.length; i++) {
for (int j = 0; j < spielerarray.length; j++) {
spielerarray[i][j] = "o";
}
}
// Anzahl Schiffe
int anzahlschiffe = Integer.parseInt(JOptionPane.showInputDialog("Wie viele Schiffe hast du?"));
for (int i = 0; i < anzahlschiffe; i++) {
// Größe des Schiffes
int größeschiff = Integer.parseInt(JOptionPane.showInputDialog("Wie groß ist dein " + (i + 1) + " Schiff?"));
for (int j = 0; j < größeschiff; j++) {
// Koordinateneingabe
JOptionPane.showMessageDialog(null, "Wähle Koordinaten von 0-" + (spielerarray.length - 1));
int koordinate1;
int koordinate2;
koordinate1 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 1 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
koordinate2 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 2 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
spielerarray[koordinate1][koordinate2] = "x";
}
}
// Ausgabe Spielfeld
for (int i = 0; i < spielerarray.length; i++) {
for (int x = 0; x < spielerarray.length; x++) {
System.out.print(spielerarray[x][i] + " ");
}
System.out.println();
}
}
}
1 Antwort
Hallo.
Damit das Schiff waagerecht oder senkrecht ist, musst du einfach nur überprüfen, ob eine der Koordinaten bei Start- und Endpunkt gleich ist.
Angenommen koordinate1 steht für x und koordinate2 für y, dann wäre das Schiff waagerecht, wenn koordinate1 gleich ist und senkrecht, wenn koordinate2 gleich ist.
Woher ich das weiß:Studium / Ausbildung – Diplom Wirtschaftsinformatiker