Код игры Tic-Tac-Toe (в процессе). Когда я запускаю код, он запрашивает номер позиции X, после чего он останавливается. Это связано с циклом while, потому что, когда я запускаю его без него, он отлично работает. Мне нужен цикл, однако, чтобы установить X как false, чтобы он изменился на оборот O.Do While loop застревает
import java.util.Scanner;
class TicTacToe
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int XInput, OInput;
boolean IfGameOver;
String []board = {"1","2","3","4","5","6","7","8","9"};
IfGameOver = false;
boolean Xturn, Oturn;
Xturn = true;
Oturn = false;
System.out.print("Welcome to Tic-Tac-Toe!\n\n");
do
{
{
System.out.println(" " + board[0] + board[1] + board[2]);
System.out.println(" " + board[3] + board[4] + board[5]);
System.out.println(" " + board[6] + board[7] + board[8]);
}
if (Xturn)
System.out.println("It is X's turn, position number?");
if (Oturn)
System.out.println("It is O's turn, position number?");
do
{
try
{
XInput = scan.nextInt();
board[XInput-1] = "X";
Oturn= true;
Xturn = false;
}
catch (NumberFormatException e)
{
System.out.println("Invalid input. Please enter a position number");
XInput = scan.nextInt();
}
}while(Xturn = true);
do
{
try
{
OInput = scan.nextInt();
board[OInput-1] = "X";
Oturn = false;
Xturn = true;
}
catch (NumberFormatException e)
{
System.out.println("Invalid input. Please enter a position number");
OInput = scan.nextInt();
}
}while (Oturn = true);
} while (!IfGameOver);
}
}
* «Запустите его без него» * - слишком много местоимений! –
Возможно, вы захотите удалить второй 'scan.nextInt()' в своих операциях catch, поскольку вы будете запрашивать ввод дважды подряд. – theguywhodreams
Я бы предложил, вы берете входной петлю пользователя и перемещаете его по собственному методу, таким образом, вы можете немного уменьшить сложность. – MadProgrammer