import java.util.Scanner;
public class Sudoku {
static int[][] board = new int[9][9];
public static void main(String[] args) {
initializeBoard();
printBoard();
while (!isSudokuSolved()) {
playTurn();
printBoard();
}
System.out.println("¡Felicidades! Has resuelto el Sudoku.");
}
static void initializeBoard() {
// Puedes inicializar el tablero aquí o cargar uno predefinido.
// Por simplicidad, aquí hay un ejemplo de un Sudoku fácil.
int[][] initialBoard = {
{5, 3, 0, 0, 7, 0, 0, 0, 0},
{6, 0, 0, 1, 9, 5, 0, 0, 0},
{0, 9, 8, 0, 0, 0, 0, 6, 0},
{8, 0, 0, 0, 6, 0, 0, 0, 3},
{4, 0, 0, 8, 0, 3, 0, 0, 1},
{7, 0, 0, 0, 2, 0, 0, 0, 6},
{0, 6, 0, 0, 0, 0, 2, 8, 0},
{0, 0, 0, 4, 1, 9, 0, 0, 5},
{0, 0, 0, 0, 8, 0, 0, 7, 9}
};
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
board[i][j] = initialBoard[i][j];
}
}
}
static void printBoard() {
System.out.println("-------------------------");
for (int i = 0; i < 9; i++) {
System.out.print("| ");
for (int j = 0; j < 9; j++) {
System.out.print(board[i][j] + " ");
if ((j + 1) % 3 == 0) {
System.out.print("| ");
}
}
System.out.println();
if ((i + 1) % 3 == 0) {
System.out.println("-------------------------");
}
}
}
static void playTurn() {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingresa la fila (1-9): ");
int row = scanner.nextInt() - 1;
System.out.println("Ingresa la columna (1-9): ");
int col = scanner.nextInt() - 1;
System.out.println("Ingresa el valor (1-9): ");
int value = scanner.nextInt();
if (isValidMove(row, col, value)) {
board[row][col] = value;
System.out.println("Movimiento válido. ¡Buena jugada!");
} else {
System.out.println("Movimiento inválido. Intenta de nuevo.");
}
}
static boolean isValidMove(int row, int col, int value) {
// Verifica si el movimiento es válido en términos de las reglas del Sudoku.
// Puedes implementar las reglas de Sudoku aquí.
return true;
}
static boolean isSudokuSolved() {
// Verifica si el Sudoku está resuelto.
// Puedes implementar esta lógica según tus necesidades.
return false;
}
}