Artikel ini menjelaskan masalah Sudoku yang diimplementasikan oleh Java berdasarkan array dua dimensi. Bagikan untuk referensi Anda, sebagai berikut:
Di sini kami menggunakan array dua dimensi Java untuk mengimplementasikan masalah Sudoku.
(1) menghasilkan sudoku sederhana (2) menghasilkan masalah sudoku **
Kode
impor java.util.random; import java.util.arraylist; kelas publik suduku { / ***cetak array dua dimensi, sudoku matrix* / public static printarray (int a [] []) {for (int i = 0; i <9; i ++) {for (int j = 0; +[i] [j]); Statis ArrayList <Integer> creatninerondomarray () {arraylist <integer> Daftar = ArrayList baru <integer> (); List.add (Randomnum); } System.out.println (); daftar pengembalian; } /*** Hasilkan matriks Sudoku acak melalui array satu dimensi dan array asli** Transfer data dalam array dua dimensi, temukan posisi nilai saat ini dalam array satu dimensi, dan tetapkan array satu dimensi* posisi saat ini ditambah nilai posisi ke array dua dimensi saat ini. Tujuannya adalah untuk menggunakan array satu dimensi sebagai dasar, dan untuk menukar 9 data ini dalam urutan acak untuk menghasilkan matriks Sudoku acak. * */ void statis publik creatudokuarray (int [] [] seedArray, arraylist <Integer> randomList) {for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j ++) {untuk (int k = 0; k <9; k ++) {if) {i {IF) {i {i {i {IF) {iF) {i {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) {iF) seedArray [i] [j] = randomList.get ((k+1)%9); merusak; }}}} System.out.println ("olahan array"); Suduku.printarray (seedArray); } public static void creatudokuquestion (int [] [] a) {acak rand = random baru (); untuk (int i = 0; i <9; i ++) {for (int j = 0; j <4; j ++) {a [i] [(int) rand.nextint (9)] = 0; }} Suduku.printarray (a); } // public static void main (string [] args) {int unggas [] [] = {{9,7,8,3,1,2,6,4,5}, {3,1,2,6,4,5,7,8}, {6,4,5,9,7,8,3,2}, {6,4,5,9,7,2,2}, {6,4,9,7}, {6,4,9,7}, {6,4,9,7}, {6,4,9,7}, {6,4,9,7}, {6,4,9,7}, {6,4,9,7 {, {7,8,9,1,2,3,4,5,6,7,8,9}, {1,2,3,4,5,6,7,8,9}, {4,5,6,7,8,9,1,2,3}, {8,9,2,2,3,1,5,6,6,4}, {8,9,2,2,3,1,5,6,6,4}, {9,9,2,3,6,6,6,6,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,2, {5,6,4,8,9,7,2,3,1}}; System.out.println ("Array 2D Asli:"); Suduku.printarray (seedArray); ArrayList <Integer> randomList = suduku.creatninerondomarray (); Suduku.creatsudokuarray (seedarray, randistlist); System.out.println ("menghasilkan masalah sudoku:"); Suduku.creatsudokuquestion (seedArray); }}Keluaran:
9 8 3 1 2 4 5 6 4 8 9 7 5 6 4 8 9 7 2 2 3 1 5 6 4 8 9 7 2 3 1 5 6 4 8 9 7 5 6 4 8 9 7 2 3 1 5 6 4 8 9 7 8 8 8 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 8 0 5 7 0 2 4 1 0 7 9 6 0 5 0 1 6 0 9 2 0 0 6 0 9 2 0 0 5 7 0 2 0 6 0 9 2 0 0 5 0 2 0 0 0 0 0 0 2 0 0 2 0 0 0 0 2 0 5 0 0 0 0 5 0 0 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 6 0 0 6 0 9 2 0 0 5 7 0 2 0 5 7 0 2 0 0 0 0 0 0 0 0 0 5 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 2 0 0 5 7 0 2 0 8 2 3 0 6 4 8 2 7 0 5 4 8 2 7 0 0 3 9 6
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.