Hallo,
ich bin momentan dabei ein kleines Spiel "Schiffe versenken" zu programmieren. Der Content ist lange noch nicht ausgereift jedoch habe ich eine Frage zu meinem Code. In der If-Else Verzweigung wird immer Else ausgeführt, obwohl dies ja eigentlich nicht sein darf und ich finde leider keinen Fehler. Ich programmiere mit Eclipse.
Der Code:
import java.util.*;
public class Tester
{
private static Scanner scan;
public static void main(String[] args)
{
scan = new Scanner(System.in);
int Spielfeld [][] = new int [5 + 1][5 + 1];
int anzahlSchiffe = 15, S1X = 0, S1Y = 0, S2X = 0, S2Y = 0, S1Punkte = 0, S2Punkte = 0;
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 5; y++)
{
Spielfeld [x][y] = 0;
System.out.print("o ");
}
System.out.println("");
}
for (int i = 0; i <= anzahlSchiffe; i++)
{
int o = 0;
do
{
int xRandom = (int) Math.random() * 5 + 1;
int yRandom = (int) Math.random() * 5 + 1;
if (Spielfeld [xRandom][yRandom] == 0);
{
Spielfeld [xRandom][yRandom] = 1;
o++;
}
}while(o == 0);
}
do
{
System.out.println("S1 ist dran mit X");
S1X = scan.nextInt();
System.out.println("S1 ist dran mit Y");
S1Y = scan.nextInt();
if(Spielfeld[S1X][S1Y] == 1)
{
System.out.println("Treffer");
S1Punkte++;
}
else
{
System.out.println("Niete!");
}
System.out.println("S2 ist dran mit X");
S2X = scan.nextInt();
System.out.println("S2 ist dran mit Y");
S2Y = scan.nextInt();
if(Spielfeld[S2X][S2Y] == 1)
{
System.out.println("Treffer");
S2Punkte++;
}
else
{
System.out.println("Niete!");
}
}while ((!(S1Punkte >= (anzahlSchiffe/2))) || (!(S2Punkte >= (anzahlSchiffe/2))));
if (S1Punkte >= (anzahlSchiffe/2));
{
System.out.println("S1 hat gewonnen!");
}
if (S2Punkte >= (anzahlSchiffe/2));
{
System.out.println("S2 hat gewonnen!");
}
}
}
ich bin momentan dabei ein kleines Spiel "Schiffe versenken" zu programmieren. Der Content ist lange noch nicht ausgereift jedoch habe ich eine Frage zu meinem Code. In der If-Else Verzweigung wird immer Else ausgeführt, obwohl dies ja eigentlich nicht sein darf und ich finde leider keinen Fehler. Ich programmiere mit Eclipse.
Der Code:
import java.util.*;
public class Tester
{
private static Scanner scan;
public static void main(String[] args)
{
scan = new Scanner(System.in);
int Spielfeld [][] = new int [5 + 1][5 + 1];
int anzahlSchiffe = 15, S1X = 0, S1Y = 0, S2X = 0, S2Y = 0, S1Punkte = 0, S2Punkte = 0;
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 5; y++)
{
Spielfeld [x][y] = 0;
System.out.print("o ");
}
System.out.println("");
}
for (int i = 0; i <= anzahlSchiffe; i++)
{
int o = 0;
do
{
int xRandom = (int) Math.random() * 5 + 1;
int yRandom = (int) Math.random() * 5 + 1;
if (Spielfeld [xRandom][yRandom] == 0);
{
Spielfeld [xRandom][yRandom] = 1;
o++;
}
}while(o == 0);
}
do
{
System.out.println("S1 ist dran mit X");
S1X = scan.nextInt();
System.out.println("S1 ist dran mit Y");
S1Y = scan.nextInt();
if(Spielfeld[S1X][S1Y] == 1)
{
System.out.println("Treffer");
S1Punkte++;
}
else
{
System.out.println("Niete!");
}
System.out.println("S2 ist dran mit X");
S2X = scan.nextInt();
System.out.println("S2 ist dran mit Y");
S2Y = scan.nextInt();
if(Spielfeld[S2X][S2Y] == 1)
{
System.out.println("Treffer");
S2Punkte++;
}
else
{
System.out.println("Niete!");
}
}while ((!(S1Punkte >= (anzahlSchiffe/2))) || (!(S2Punkte >= (anzahlSchiffe/2))));
if (S1Punkte >= (anzahlSchiffe/2));
{
System.out.println("S1 hat gewonnen!");
}
if (S2Punkte >= (anzahlSchiffe/2));
{
System.out.println("S2 hat gewonnen!");
}
}
}