Ich habe schon einen kompletten Quellcode zu dem Spiel, möchte ihn jetzt jedoch in Methoden unterteilen (für Erstellung des Arrays/Feldes, für das platzieren von Schiffen, für das Schießen auf Schiffe und das Überprüfen, ob es ein Treffer war und ob ich das Schiff bereits versenkt habe)
Prizipiell habe ich es mir so gedacht:
Ich erstelle zwei 2D Arrays, ein Array in dem ich die Schiffe "speichere" und ein Array, welches dem Spieler angezeigt wird, damit er eine Visualisierung des Speilfeldes hat.
Momentan erstelle ich meine Schiffe selber, will dieses ,wie später beschrieben, zufällig geschehen lassen.
Dann lasse ich die Koordinaten für die Schüsse eingeben und überprüfe in meinem Array, in dem die Schiffe gespeichert werden (array feld), ob in diesem Feld eine "1" steht. (1 steht in diesem Fall für einen Teil des Schiffes).
Meine Schiffe sollen 3 Felder groß sein, weshalb ich damit überprüfe, ob ich 3x einen Treffer gelandet habe und wenn ja, dann endet das Spiel.
So und jetzt der Code:
Das Schiff würde ich mit Hilfe der Random-Methode platzieren lassen, also :
Jedoch weiß ich nicht, wie ich das als Methode gestalten soll
Ich hoffe mir kann jemand helfen, sorry schon mal im Voraus für so eine dumme Frage
Prizipiell habe ich es mir so gedacht:
Ich erstelle zwei 2D Arrays, ein Array in dem ich die Schiffe "speichere" und ein Array, welches dem Spieler angezeigt wird, damit er eine Visualisierung des Speilfeldes hat.
Momentan erstelle ich meine Schiffe selber, will dieses ,wie später beschrieben, zufällig geschehen lassen.
Dann lasse ich die Koordinaten für die Schüsse eingeben und überprüfe in meinem Array, in dem die Schiffe gespeichert werden (array feld), ob in diesem Feld eine "1" steht. (1 steht in diesem Fall für einen Teil des Schiffes).
Meine Schiffe sollen 3 Felder groß sein, weshalb ich damit überprüfe, ob ich 3x einen Treffer gelandet habe und wenn ja, dann endet das Spiel.
So und jetzt der Code:
Java:
import java.util.*;
public class schiffeversenkken {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
// Hilfsvariablen
int x = 0 ;
int x1 = 0 ;
int y = 0 ;
int y1 = 0 ;
int i = 0 ;
int i1 = 0 ;
int j = 0 ;
int j1 = 0 ;
int s1 = 0 ;
int s2 = 0 ;
int s3 = 0 ;
int t = 0 ;
boolean treffer = false;
boolean versenkt = false;
//Spielfeld
int [][] feld = new int [10][10] ;
int [][] anzeige = new int [10][10] ;
// Ausgabe Spielfeld
for(i = 0; i < feld.length; i++){
for(j = 0; j < feld.length; j++){
System.out.print(" [ " + feld[i][j] + " ]" + "\t" ) ;
}
System.out.println();
}
// Schiffe platzieren
for (s1=0;s1<3 ;s1++ ) {
System.out.println("x-Koordinate des Schiffes: ");
x = scan.nextInt() ;
System.out.println("y-Koordinate des Schiffes: ");
y = scan.nextInt() ;
feld [x][y] = 1 ;
} // end of for
x = 0 ;
y = 0 ;
System.out.println("Schiff platziert!");
System.out.println(" ");
// neues Spielfeld ausgeben
for(i1 = 0; i1 < feld.length; i1++){
for(j1 = 0; j1 <feld.length; j1++){
System.out.print("[" + anzeige[i1][j1] + "]" + "\t");
}
System.out.println();
} // end of main
System.out.println("Nun such dir ein Feld zum beschießen aus!");
//while (versenkt = false) {
while (t<3) {
System.out.println("x-Koordinate des Schusses: " );
x1 = scan.nextInt();
System.out.println("y-Koordinate des Schusses: " );
y1 = scan.nextInt();
if (feld[x1][y1] == 1) {
treffer = true;
System.out.println("Treffer!");
t = t + 1 ;
} else{
treffer = false ;
System.out.println("Kein Treffer!");
}// end of if
treffer = false ;
if (t == 3) {
versenkt = true ;
System.out.println("Du hast das Boot versenkt! Herzlichen Glückwunsch. Jetzt geh die badenden Matrosen aufsammeln.");
} // end of if
}
}
} // end of class schiffeversenkken
//}
Das Schiff würde ich mit Hilfe der Random-Methode platzieren lassen, also :
Java:
import java.util.Random ;
public class platzieren {
public static void main (String[] args){
int i = 0 ;
int x = 0 ;
int y = 0 ;
while (i<100) {
Random random = new Random ();
x = random.nextInt(10)+1;
y = random.nextInt(10)+1;
System.out.println(x + "\t" + y);
i = i + 1 ;
} // end of while
}
} // end of class platzieren
Ich hoffe mir kann jemand helfen, sorry schon mal im Voraus für so eine dumme Frage