If Abfrage Booelan true

FiselM

Mitglied
/**
* Write a description of class Schiffe here.
*
* @author (Michael Fisel)
* @version (10.07.2007)
*/
import ConsoleInOut.*;
public class Schiffe
{
public static void main (String args[])
{
boolean[][] spielfeld =
{ {false, true , false, false, false, false, false, false, false, false },
{false, true , false, false, false, true , true , false, false, false },
{false, true , false, false, false, false, false, false, false, false },
{false, true , false, false, false, false, false, false, false, false },
{false, true , false, false, true , true , true , true , false, false },
{false, false, false, false, false, false, false, false, false, false },
{false, false, false, false, false, false, false, false, false, false },
{false, false, false, false, false, false, false, false, true , false },
{false, false, false, false, false, false, false, false, true , false },
{false, false, false, false, false, false, false, false, true , false },
};

int schuss = 0;
for (int treffer = 14;treffer >=0;)
{
int x = 0;
int y = 0;
System.out.println("Mit x = 99 können Sie das Spiel abbrechen");
System.out.println("Geben Sie Wert für x Koordiante ein:");
x = Console.console_in_int();
if ((x == 99))
{
break;
}
System.out.println("Geben Sie wert für y Koordinate ein:");
y = Console.console_in_int();
schuss++;

if (((x < 0) | (x > 9)) | ((y < 0)| (y > 9)))
{
System.out.println("Falsche Eingabe - Bitte von 0 bis 9");
continue;
}
if (spielfeld[x][y] == true)
{
treffer--;
System.out.println("Sie haben einen Treffer gelandet");
}
else
System.out.println("Sie haben daneben geballert");
}



System.out.println("Spiel Ende");
System.out.println("Anzahle der Schüsse: " + schuss);

}
}

Hallo,
Ich habe Probleme bei dem Quelltext da oben mit der If Abfrage

if (spielfeld[x][y] == true)
{
treffer--;
System.out.println("Sie haben einen Treffer gelandet");
}
else
System.out.println("Sie haben daneben geballert");

Bitte um Hilfe er ignoriert die Abfrage obwohl ich alle Koordinaten
versucht habe und findet einfach keinen Treffer.
 
Wenn du explizist Werte für x und y vorgibst, ohne diese Console zu verwenden, dann gibt es auch einen Treffer.
Ergo deine Consolen Klasse liefert da wohl Murks.. Da ich diese nicht kenne, kann ich auch nicht sagen, was da passiert..
Probiere stattdessen mal die Scanner Klasse aus:
Code:
Scanner sc = new Scanner(System.in);
x = sc.nextInt();

Das nächste mal auch bitte der Übersichtlichkeit halber deinen Code bitte mit den entsprechenden Tags formatieren!

*grüssle*
MeinerEiner
 
Also entweder sind die eingegebenen Werte keine echten Integer, dann solltest Du diese nach Integer casten (Ich würde der Sauberkeit wegen eh den Weg über den Streambuffer gehen) oder aber Java hat ein Problem mit Deiner Bedingung.

was passiert, wenn Du "if (spielfeld[x][y])" setzt?
 
Zurück