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;
}
}