Добрый день, я бы хотел узнать как мне лучше сделать.
private static void gamePlay() {
if ("1".equals(gameMode)) {
System.out.println("\n" + Main.playerOne.getName() + " ваш ход!");
Player.turn(1);
field.printSpace();
tieGame(field.checkSpace());
checkForWinner();
System.out.println("\n" + Main.playerTwo.getName() + " ваш ход!");
Player.turn(2);
field.printSpace();
tieGame(field.checkSpace());
checkForWinner();
} else if ("2".equals(gameMode)) {
System.out.println("\n" + Main.playerOne.getName() + " ваш ход!");
Player.turn(1);
field.printSpace();
tieGame(field.checkSpace());
checkForWinner();
System.out.println("\n" + Main.bot.getName() + " ходит!");
Bot.turn();
field.printSpace();
tieGame(field.checkSpace());
checkForWinner();
}
}
есть данный метод и он работает по разному в зависимости от выбора игрока, 1 - это игрок против игрока, 2 игрок против бота, так вот его лучше разделить или же оставить таким как он есть
public static void turn(int serialNumber) {
int x;
int y;
x = Main.field.getX();
y = Main.field.getY();
if ((x >= 3 | x < 0) | (y >= 3 | y < 0)) {
System.out.println("Вы ввели недопустимые координаты!");
turn(serialNumber);
} else {
if (Main.field.pole[x][y] == 'O' | Main.field.pole[x][y] == 'X') {
System.out.println("\nВы не можете туда походить!");
Main.field.printSpace();
turn(serialNumber);
} else {
if (serialNumber == 1) {
Main.field.pole[x][y] = 'X';
} else {
Main.field.pole[x][y] = 'O';
}
}
}
}
Вот второй метод он находиться в классе игрок и при его вызове я указываю какой игрок ходит, можно ли сделать как то иначе ?