Ayuda con el programa Java Sudoku Permuter usando Two Dimensional Array?

Tengo que crear un programa que muestre las 9 filas de un sudoku como 9 números de 9 dígitos y luego solicitar al usuario que realice una de las 6 operaciones en el sudoku. Luego tenemos que generar el sudoku cada vez que el usuario realiza una operación. Esta es una especie de ejecución de muestra de cómo debería ir:

Welcome to Sudoku Permuter.

   C C C C C C C C C
   1 2 3 4 5 6 7 8 9
R1 0 8 0 4 0 2 0 6 0
R2 0 3 4 0 0 0 9 1 0
R3 9 6 0 0 0 0 0 8 4
R4 0 0 0 2 1 6 0 0 0
R5 2 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 8
R7 8 4 0 0 0 0 0 7 5
R8 0 2 6 0 0 0 1 3 0
R9 0 9 0 7 0 1 0 4 0

(0 denotes a blank)

Enter 1 to swap two rows in a panel
Enter 2 to swap two columns in a panel
Enter 3 to swap two row panels
Enter 4 to swap two column panels
Enter 5 to swap two numbers
Enter 0 to end:

Digamos que el usuario ingresa 3 (para intercambiar dos paneles de fila). Esto surgiría:

Enter row panels (1-3) to swap: 3 1

Intercambiaría los paneles de fila 1 y 3, y este sería el resultado:

   C C C C C C C C C
   1 2 3 4 5 6 7 8 9
R1 8 4 0 0 0 0 0 7 5
R2 0 2 6 0 0 0 1 3 0
R3 0 9 0 7 0 1 0 4 0
R4 0 0 0 2 1 6 0 0 0
R5 2 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 8
R7 0 8 0 4 0 2 0 6 0
R8 0 3 4 0 0 0 9 1 0
R9 9 6 0 0 0 0 0 8 4

Rows 1-3 have been switched with rows 7-9.

Digamos que el usuario ingresa 5. Esto aparece:

Enter two numbers: 2 8

El sudoku original se emite nuevamente, excepto que los 2 y 8 se cambian por completo.

   C C C C C C C C C
   1 2 3 4 5 6 7 8 9
R1 0 2 0 4 0 8 0 6 0
R2 0 3 4 0 0 0 9 1 0
R3 9 6 0 0 0 0 0 2 4
R4 0 0 0 8 1 6 0 0 0
R5 8 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 2
R7 2 4 0 0 0 0 0 7 5
R8 0 8 6 0 0 0 1 3 0
R9 0 9 0 7 0 1 0 4 0

Si el usuario ingresó 1, surgiría algo diciendo

Enter two rows (1-9) to switch:

Y en cualquier fila que ingrese el usuario, esas dos filas individuales se intercambiarían y el sudoku volvería a salir. Sería similar si el usuario ingresara 2, excepto que se cambiarían 2 columnas. Del mismo modo, si el usuario ingresó 4, se cambiarían dos paneles de columna.

Se supone que debemos usar una matriz bidimensional como esta:

int [] [] sudoku = new int[10] [10]

No tengo ni idea de cómo hacer esto. He estado luchando todo el semestre, esta es mi primera clase de programación. Simplemente no entiendo las matrices en absoluto, y no entiendo cómo se supone que debemos mostrar el sudoku en primer lugar. Este problema no está en nuestro libro, así que tampoco tengo nada que mirar hacia atrás. Realmente necesito pasar esta clase. Si alguien pudiera ayudarme, realmente lo agradecería. Intenta que sea fácil de entender, hay muchas cosas que aún no he aprendido a hacer (por ejemplo, para el registro, idk qué es parseInt). He intentado leer el libro (varias veces). Ayuda a algunos, pero este programa será imposible. Muchas gracias por la ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta