В настоящее время я делаю судоку с использованием Java, однако я не могу понять, как правильно зациклить мой сканер. Пока он печатает это:
. 1 . | 3 . . | 8 . .
5 . 9 | 6 . . | 7 . .
7 . 4 | . 9 5 | . 2 .
----------------------
4 . . | . . . | 1 . .
. 2 8 | . 7 1 | . 6 3
. . . | 2 . 4 | 9 5 .
----------------------
6 . 3 | . . 9 | . . 7
. . . | 4 2 . | 5 1 6
. 5 2 | . 8 . | . 4 .
Next move, please (row , column , value )
И я могу поменять символы. с моим кодом, но я хочу зациклить это правильно. Поэтому, если судоку по-прежнему содержит символ '.', Я хочу, чтобы сканер зациклился, чтобы отредактировать его еще раз. Я все еще довольно новичок в написании сценариев
И вот код, который я сделал для его редактирования:
public void moves(int row , int column , int value) {
value += 48;
if (list.get(row).charAt(column) == '.'){
StringBuilder sb = new StringBuilder(list.get(row));
sb.setCharAt(column, (char)value);
list.set(row, sb.toString());
}
}
public static void main(String[] args) throws Exception {
Sudoku s = new Sudoku("C:\\Users\\caspe\\Downloads\\Sudoku001.sdk");
s.printBoard();
s.errorCheck();
System.out.println("Next move, please (row , column , value )");
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int column = scanner.nextInt() ;
int value = scanner.nextInt();
s.moves(row, column, value);
s.errorCheck();
s.printBoard();
}
}
Итак, чтобы подвести итог, как я могу зациклить сканер, пока не останется больше точек / '.'?