CrossZiroGame

Run Settings
LanguageJava
Language Version
Run Command
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { int mode; int xo; char chXO; Scanner in = new Scanner(System.in); System.out.println("Выберете режим игры: 1 - PvP, 2 - PvC"); mode = in.nextInt(); while (true) { if (mode == 1) { mPvP(); break; } else if (mode == 2) { System.out.println("Выберете за что играть: 1 - X, 2 - 0"); xo = in.nextInt(); if (xo == 1) chXO = 'x'; else chXO = '0'; mPvC(chXO); break; } else { System.out.println("Ведите 1 или 2"); System.out.println("Выберете стиль игры: 1 - PvP, 2 - PvC"); mode = in.nextInt(); } } } //Игра с игроком public static void mPvP() { char[][] B = new char[3][3]; int x; int y; char testXO; Scanner in = new Scanner(System.in); System.out.print("Игровое поле:"); for (int i = 0; i < B.length; i++) { System.out.println(); for (int j = 0; j < B[i].length; j++) { B[i][j] = '-'; System.out.print(B[i][j] + " "); } } System.out.println(); for (int t = 1; t < 10; t++) { //Тест очереди игрока if (t % 2 != 0) testXO = 'x'; else testXO = '0'; //Выбор игроком координат и запись в клетку while (true) { System.out.println("(Игрок " + testXO + ")Введите координаты клетки(x, y последовательно)(нумирация начинается с 1 с верхнего левого угла):"); x = in.nextInt(); y = in.nextInt(); if (x > 3 || y > 3 || x < 1 || y < 1) System.out.println("x и y могут принимать значения 1, 2, 3"); else if (B[y - 1][x - 1] != '-') System.out.println("Клетка с координатами " + x + ", " + y + " занята"); else { B[y - 1][x - 1] = testXO; break; } } //Вывод изменённого игрового поля for (int i = 0; i < B.length; i++) { System.out.println(); for (int j = 0; j < B[i].length; j++) { System.out.print(B[i][j] + " "); } } System.out.println(); //Проверка 3-х одинаковых значений // - - - if (B[0][0] == testXO && B[0][0] == B[0][1] && B[0][0] == B[0][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[1][0] == testXO && B[1][0] == B[1][1] && B[1][0] == B[1][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[2][0] == testXO && B[2][0] == B[2][1] && B[2][0] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; // | | | }else if (B[0][0] == testXO && B[0][0] == B[1][0] && B[0][0] == B[2][0]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[0][1] == testXO && B[0][1] == B[1][1] && B[0][1] == B[2][1]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; }else if (B[0][2] == testXO && B[0][2] == B[1][2] && B[0][2] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; // \ / }else if (B[0][0] == testXO && B[0][0] == B[1][1] && B[0][0] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; }else if (B[2][0] == testXO && B[2][0] == B[1][1] && B[2][0] == B[0][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; // ничья }else if (t == 9) System.out.println("Игра закончена, НИЧЬЯ!"); } } //Игра с компьютером public static void mPvC(char chXO) { char[][] B = new char[3][3]; int x; int y; int cx; int cy; char testXO; Scanner in = new Scanner(System.in); Random random = new Random(); System.out.print("Игровое поле: "); for (int i = 0; i < B.length; i++) { System.out.println(); for (int j = 0; j < B[i].length; j++) { B[i][j] = '-'; System.out.print(B[i][j] + " "); } } System.out.println(); for (int t = 1; t < 10; t++) { //Тест очереди if (t % 2 != 0) testXO = 'x'; else testXO = '0'; //Проверка на человека if (testXO == chXO) { //Выбор игроком координат и запись в клетку while (true) { System.out.println("(Игрок " + testXO + ")Введите координаты клетки(x, y последовательно)(нумирация начинается с 1 с верхнего левого угла):"); x = in.nextInt(); y = in.nextInt(); if (x > 3 || y > 3 || x < 1 || y < 1) System.out.println("x и y могут принимать значения 1, 2, 3"); else if (B[y - 1][x - 1] != '-') System.out.println("Клетка с координатами " + x + ", " + y + " занята "); else { B[y - 1][x - 1] = testXO; break; } } }else { //Выбор компьютером координат и запись в клетку System.out.println("Ход компьютера:"); while (true) { cx = random.nextInt(3); cy = random.nextInt(3); if (B[cy][cx] == '-') break; } B[cy][cx] = testXO; } //Вывод изменённого игрового поля for (int i = 0; i < B.length; i++) { System.out.println(); for (int j = 0; j < B[i].length; j++) { System.out.print(B[i][j] + " "); } } System.out.println(); //Проверка 3-х одинаковых значений // - - - if (B[0][0] == testXO && B[0][0] == B[0][1] && B[0][0] == B[0][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[1][0] == testXO && B[1][0] == B[1][1] && B[1][0] == B[1][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[2][0] == testXO && B[2][0] == B[2][1] && B[2][0] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; // | | | }else if (B[0][0] == testXO && B[0][0] == B[1][0] && B[0][0] == B[2][0]) { System.out.println("Игра закончена, победил игрок " + testXO +"!"); break; }else if (B[0][1] == testXO && B[0][1] == B[1][1] && B[0][1] == B[2][1]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; }else if (B[0][2] == testXO && B[0][2] == B[1][2] && B[0][2] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; // \ / }else if (B[0][0] == testXO && B[0][0] == B[1][1] && B[0][0] == B[2][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "!"); break; }else if (B[2][0] == testXO && B[2][0] == B[1][1] && B[2][0] == B[0][2]) { System.out.println("Игра закончена, победил игрок " + testXO + "! "); break; // ничья }else if (t == 9) System.out.println("Игра закончена, НИЧЬЯ!"); } } }
Editor Settings
Theme
Key bindings
Full width
Lines