Hey, hab mal wieder ein paar Probleme mit meienr Hausaufgabe. Meine Hausaufgabe ist es ein eindimensionales Schiffe versenken zu erstellen.
Das Spiel besteht aus einer Linie oder einem Feld von 25 Einheiten. jedes Feld wird dabei als ein Punkt gezeigt (.........................). Auf diesem Feld sollen dann 2 Schiffe sein, eins in der größe von 5 einheiten und das andere mit einer größe von 3 einheiten.
Bei einem unbekannten Feld soll ein Punkt gezeigt werden
Bei einem Fehlschuss ein Minus Zeichen
Bei einem Treffer ein X.
Und nach jedem Zug soll den Spielern das aktuelle Feld und der Stand angezeigt werden.
Meines erachtens nach sollte bis Zeile 48 alles richtig sein, da dass schon vorgegeben war.
Wenn ich das jetzt so compiliere, dann kommen allerdings so um die 40 Fehlermeldungen, wobei ich die wenisten verstehe (z.B. Schiffe.java:57: error: illegal start of type
while (zuege < feld.length) { )
Hoffe mir kann hier jemand aushelfen?
Das Spiel besteht aus einer Linie oder einem Feld von 25 Einheiten. jedes Feld wird dabei als ein Punkt gezeigt (.........................). Auf diesem Feld sollen dann 2 Schiffe sein, eins in der größe von 5 einheiten und das andere mit einer größe von 3 einheiten.
Bei einem unbekannten Feld soll ein Punkt gezeigt werden
Bei einem Fehlschuss ein Minus Zeichen
Bei einem Treffer ein X.
Und nach jedem Zug soll den Spielern das aktuelle Feld und der Stand angezeigt werden.
Java:
// Eindimensionales "Schiffe versenken"-Spiel
// Name:
import java.util.Random;
import java.util.Scanner;
public class Schiffe {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random rgen = new Random();
// Random rgen = new Random(0);
// Spielfeld: 25 Kaestchen
final int groesse = 25;
int feld[] = new int[groesse];
// Bedeutung der Werte im Spielfeld:
// 0: Wasser - noch nicht beschossen
// 1: Schiff - noch nicht beschossen
// 2: Wasser - Spieler weiss, das leer
// 3: Schiff - schon getroffen
// Position des Schlachtschiffes (5 Kaestchen breit):
int schlachtschiff = rgen.nextInt(groesse - 4);
// Startposition bei 0 bis 20
feld[schlachtschiff+0] = 1;
feld[schlachtschiff+1] = 1;
feld[schlachtschiff+2] = 1;
feld[schlachtschiff+3] = 1;
feld[schlachtschiff+4] = 1;
// Position des Zerstoerers (3 Kaestchen breit)
int min = 0;
int max = groesse - 3;
if(schlachtschiff <= 3)
min = schlachtschiff + 6;
// Passt nicht mehr davor
else if(schlachtschiff >= groesse - 8)
// Passt nicht mehr dahinter
max = schlachtschiff - 4;
else if(rgen.nextInt(2) == 0)
// Zufallsentscheidung davor/dahinter
min = schlachtschiff + 6;
else
max = schlachtschiff - 4;
int zerstoerer = min + rgen.nextInt(max - min + 1);
feld[zerstoerer+0] = 1;
feld[zerstoerer+1] = 1;
feld[zerstoerer+2] = 1;
// Ab hier Ihr Programm:
// Die Testausgabe koennen Sie loeschen:
}
int zuege =0;
int treffer=0;
while (zuege < feld.length) {
System.out.print("Bitte Zahl von 0 bis 24 eingeben ");
int n = scan.nextInt();
if (n>=feld.length||n<0)) {
System.out.println ("Fehler");
}
else {
if (feld[n]==0) {
feld[n]=2;
}
else if (feld[n]==1) {
feld[n]=3;
treffer++;
}
else {
System.out.println("ueberflüssig");
}
}
for (int i=0;i<feld.length;i++) {
if (feld[i]==0||feld[i]==1) {
System.out.print(".");
}
else if (feld[i]==2) {
System.out.print("-");
}
else if (feld[i]==3) {
System.out.print("X");
}
}
zuege++;
if (treffer ==8) {
System.out.println();
System.out.println ("Gewonnen in " + zuege + " Zuegen.");
}
System.out.println();
}
System.out.println();
}
}
Meines erachtens nach sollte bis Zeile 48 alles richtig sein, da dass schon vorgegeben war.
Wenn ich das jetzt so compiliere, dann kommen allerdings so um die 40 Fehlermeldungen, wobei ich die wenisten verstehe (z.B. Schiffe.java:57: error: illegal start of type
while (zuege < feld.length) { )
Hoffe mir kann hier jemand aushelfen?