Witam serdecznie,
piszę z kolegą w projekcie gre warcaby i na początku zrobiliśmy sobie ruch pionkiem poprzez podanie współrzędnych Scannerem. Teraz gdy zrobiliśmy aplet 2d, dodaliśmy mouselistenera, który zwraca Nam dobre współrzędnie pola chciałbym zrezygnować ze Scannera, lub ew. zmienne z mouselistenera przekazywać do niego. Próbowałem już wielu sposobów i zdecydowałem się napisać tutaj, bo utknąłem w martwym punkcie
public void ruch(int xS,int yS, int xN, int yN, int gracz){
boolean toLiczba;
do {
do{
toLiczba=true;
if(gracz==3){
System.out.print("\r Ruch Bialego (3)");
} else {
System.out.print("\r Ruch Czarnego (2)");
}
System.out.println("\r \f podaj wspólrzedne, na których stoi pion (x-kolumna, y-wiersz)");
System.out.print("x:");
System.out.print(xmouse);
wartXStr = wartosc.nextLine();
System.out.print("y:");
wartYStr = wartosc.nextLine();
try{
//zmiana string na int
zmiennaX = Integer.parseInt(wartXStr);
zmiennaY = Integer.parseInt(wartYStr);
}
//czy podana wartosc to liczba
catch(NumberFormatException e){
System.out.println("Mozna podac tylko cyfre");
toLiczba=false;
}
//jezeli sczytana dana to liczba to flaga jest nie zmieniona i mozna
//sprawdzic warunek, czy miesci sie w przedziale, tak aby odpowiadala odpowiedniej kolumnie/wierszowi
if(toLiczba==true){
if(zmiennaX>7 || zmiennaY>7 || zmiennaX<0 || zmiennaY<0){
System.out.println("Podaj cyfre z zakresu 0-7");
toLiczba=false;
}
}
} while (toLiczba==false);
//sprawdza czy jest zero w tym miejscu czy inny pion
if(pole[zmiennaX][zmiennaY]==0 || pole[zmiennaX][zmiennaY]==1){
System.out.println("Tu nie ma zandego piona");
} else if (pole[zmiennaX][zmiennaY]!=gracz){
System.out.println("Tylko piony o oznaczeniu: "+ gracz);
}
} while ((pole[zmiennaX][zmiennaY]!=gracz) && (xmouse != 0));
Próbowałem wrzucić w miejsce wartXStr = wartosc.nextLine(); zmienną z mouselisnera ze współrzedną, ale też mi to się nie udało.
Proszę o pomoc.