Witam, zamieszczę cały kod mojej klasy.
import java.util.Scanner;
public class RozmieszczenieStatkow {
Scanner skaner = new Scanner(System.in);
int a, b;
String poleGracza[][];
boolean sprawdz;
String tekst;
public RozmieszczenieStatkow(String[][] poleGracza){
super();
this.poleGracza = poleGracza;
}
public String postawMaszt(String tekst){
tekst = tekst.toUpperCase();
a = (int)(tekst.charAt(0))-64;
b = (int)tekst.charAt(1)-48;
return poleGracza[a][b] = "X";
}
public void okretJednomasztowy(){
do{
sprawdz = false;
System.out.println("Wybierz pole, na którym chcesz postawić maszt (np A1).");
tekst = skaner.nextLine();
a = (int)(tekst.charAt(0))-64;
b = (int)tekst.charAt(1)-48;
outerLoop:
for(int i=a-2;i<=a+2;i++){
for(int j=b-2; j<=j+2;j++){
if(poleGracza[i][j].equals(null)){
sprawdz = true;
}
else{
sprawdz = false;
break outerLoop;
}
}
}
if(sprawdz = false)
System.out.println("Nie możesz w tym miejscu postawić masztu. ");
}
while(sprawdz == false);
postawMaszt(tekst);
}
}
Problem polega na tym, że w metodzie okretJednomasztowy skaner łapczywie rzuca się na linijkę nie dając mi wpisać koordynatów, po czym wypluwa, że daję mu pustą linijkę.
Konsola na to:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at RozmieszczenieStatkow.okretJednomasztowy(RozmieszczenieStatkow.java:27)
at graWStatki.main(graWStatki.java:23)
Nie pierwszy raz mi się tak dzieje. W czym tu jest problem?