Базовый Tic Tac Toe на Java без массивов
В настоящее время я пишу основную программу на Java для Tic Tac Toe Board. Я пытаюсь построить это без массивов, но почти каждая онлайн-помощь использует их. У меня есть большая часть написанного кода, но я пытаюсь создать метод для печати обновленной доски с символами (X или O) на доске. Я также должен создать игру, которая играет против компьютера, но не обязательно должна быть случайной. Я знаю, что могу использовать Math.random, чтобы выбрать перемещение компьютера, но я не уверен, как построить, используя код, который у меня есть. Недостающие части:
- После получения правильного ввода символ помещается, и доска печатается на консольном компьютере, случайным образом размещая его 'O' на незанятом поле и включая проверку на победителя. Создайте игровой цикл, который продолжается до тех пор, пока не появится победитель.
импорт java.util.Scanner;
// Хизер Ричардс автор
открытый класс Assignment3TicTacToe {
public static void main(String[] args) {
//Create scanner
Scanner input = new Scanner(System.in);
// Input loop
input: while (true) {
System.out.print("Please enter your move: "); String move = input.next();
//Checking for correct input
if (move.length() == 2) {
char row = move.charAt(0);
int number = Character.getNumericValue(move.charAt(1));
if (((row == 'a') || (row == 'b') || (row == 'c'))
&& ((number == 1) || (number == 2) || (number == 3))) {
} else {
System.out.println("Please only enter the right code (a1,...) for the play!");
}
}
//Variables declared to hold spaces on the board
char a1 = ' ';
char a2 = ' ';
char a3 = ' ';
char b1 = ' ';
char b2 = ' ';
char b3 = ' ';
char c1 = ' ';
char c2 = ' ';
char c3 = ' ';
// Method called to print updated game board
public static String gameGrid(char a1, char a2,char a3, char b1, char b2, char b3, char c1, char c2, char c3){
// Prompt user to play game and enter a position
System.out.println( "Welcome to Tic-Tac-Toe. Please enter your first move: ");
// Create game grid
System.out.println();
System.out.println(" 1 2 3 ");
System.out.println(" |----|----|----|");
System.out.println("A| " + a1 + "| " + a2 + "| " + a3 + "| ");
System.out.println(" |____|____|____|");
System.out.println("B| " + b1 + "| " + b2 + "| " + b3 + "| ");
System.out.println(" |____|____|____|");
System.out.println("C| " + c1 + "| " + c2 + "| " + c3 + "| ");
System.out.println(" |____|____|____|");
//Checking to see if position on board is empty, entering X for human interaction
switch (row) {
case 'a':
switch (number) {
case 1:
if (a1 == ' ') {
a1 = 'X';
break input;
} else
System.out.println("This field is already taken, choose another!");
break;
case 2:
if (a2 == ' ') {
a2 = 'X';
break input;
}
else
System.out.println("This field is already taken, choose another!");
break;
case 3:
if (a3 == ' ') {
a3 = 'X';
break input;
} else{
System.out.println("This field is already taken, choose another!");
break;
}
case 4:
if (b1 == ' ') {
b1 = 'X';
break input;
} else
System.out.println("This field is already taken, choose another!");
break;
case 5:
if (b2 == ' ') {
b2 = 'X';
break input;
}
else
System.out.println("This field is already taken, choose another!");
break;
case 6:
if (b3 == ' ') {
b3 = 'X';
break input;
} else
System.out.println("This field is already taken, choose another!");
break;
case 7:
if (c1 == ' ') {
c1 = 'X';
break input;
} else
System.out.println("This field is already taken, choose another!");
break;
case 8:
if (c2 == ' ') {
c2 = 'X';
break input;
}else
System.out.println("This field is already taken, choose another!");
break;
case 9:
if (c3 == ' ') {
c3 = 'X';
break input;
} else
System.out.println("This field is already taken, choose another!");
break;
}
break;
}
}
}
}}
Спасибо за вашу помощь!!!!!!!!!!!!!!!