Witam, napisałam prostą grę w kółko i krzyżyk, na początku losujemy który gracz zaczyna, następnie określając miejsca na planszy zapełniamy tablicę dwuwymiarową. Wszystko działa jak należy, natomiast chciałabym to zmodyfikować tak, że jeżeli ktoś poda lokalizację, która padła już wcześniej w danej grze, program tego nie przepuści i zakomunikuje, że ta lokalizacją jest już zajęta, i da nową szansę na podanie lokalizacji.
Proszę o pomysły lub pomoc w związku z powyższym, wszelkie opinie dotyczące kodu również mile widziane.
Pozdrawiam
package pl.com.marzena.first;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
TicTacToe ticTacToe = new TicTacToe();
System.out.println("Zaczyna gracz: " + ticTacToe.getPlayer());
Scanner scan = new Scanner(System.in);
char[][] game = new char[3][3];
int horizontal;
int vertical;
for (int i = 0; i <= 9; i++) {
System.out.println("Gracz numer: " + ticTacToe.getPlayer() + " -krzyżyk. Podaj lokalizację");
horizontal = scan.nextInt();
vertical = scan.nextInt();
game[horizontal][vertical] = 'X';
System.out.println(game[0][0] + "|" + game[0][1] + "|" + game[0][2]);
System.out.println("-+-+-");
System.out.println(game[1][0] + "|" + game[1][1] + "|" + game[1][2]);
System.out.println("-+-+-");
System.out.println(game[2][0] + "|" + game[2][1] + "|" + game[2][2]);
boolean b = game[0][0] == 'X' && game[0][1] == 'X' && game[0][2] == 'X';
boolean c = game[1][0] == 'X' && game[1][1] == 'X' && game[1][2] == 'X';
boolean d = game[2][0] == 'X' && game[2][1] == 'X' && game[2][2] == 'X';
boolean e = game[0][0] == 'X' && game[1][0] == 'X' && game[2][0] == 'X';
boolean f = game[0][1] == 'X' && game[1][1] == 'X' && game[2][1] == 'X';
boolean g = game[0][2] == 'X' && game[1][2] == 'X' && game[2][2] == 'X';
boolean h = game[0][0] == 'X' && game[1][1] == 'X' && game[2][2] == 'X';
boolean j = game[0][2] == 'X' && game[1][1] == 'X' && game[2][0] == 'X';
if (winner(b, c, d, e, f, g, h, j)) {
System.out.println("Wygrał gracz"+ ticTacToe.getPlayer());
System.exit(0);
}
int secondPlayer;
if(ticTacToe.getPlayer()==1){
secondPlayer=2;
}else{
secondPlayer=1;
}
System.out.println("Gracz numer: "+secondPlayer+" -kółko. Podaj lokalizację");
horizontal = scan.nextInt();
vertical = scan.nextInt();
game[horizontal][vertical] = 'O';
System.out.println(game[0][0] + "|" + game[0][1] + "|" + game[0][2]);
System.out.println("-+-+-");
System.out.println(game[1][0] + "|" + game[1][1] + "|" + game[1][2]);
System.out.println("-+-+-");
System.out.println(game[2][0] + "|" + game[2][1] + "|" + game[2][2]);
boolean bo = game[0][0] == 'O' && game[0][1] == 'O' && game[0][2] == 'O';
boolean co = game[1][0] == 'O' && game[1][1] == 'O' && game[1][2] == 'O';
boolean od = game[2][0] == 'O' && game[2][1] == 'O' && game[2][2] == 'O';
boolean eo = game[0][0] == 'O' && game[1][0] == 'O' && game[2][0] == 'O';
boolean fo = game[0][1] == 'O' && game[1][1] == 'O' && game[2][1] == 'O';
boolean go = game[0][2] == 'O' && game[1][2] == 'O' && game[2][2] == 'O';
boolean ho = game[0][0] == 'O' && game[1][1] == 'O' && game[2][2] == 'O';
boolean jo = game[0][2] == 'O' && game[1][1] == 'O' && game[2][0] == 'O';
if (winner(bo, co, od, eo, fo, go, ho, jo)) {
System.out.println("Wygrał gracz:"+secondPlayer);
System.exit(0);
}
}
}
private static boolean winner(boolean b, boolean c, boolean d, boolean e, boolean f, boolean g, boolean h, boolean j) {
return b == true || c == true || d == true || e == true || f == true || g == true || h == true || j == true;
}
}