В этой статье описывается проблема Судоку, реализованную Java на основе двухмерных массивов. Поделитесь этим для вашей ссылки, следующим образом:
Здесь мы используем двухмерные массивы Java для реализации проблемы судоку.
(1) генерировать простую судоку (2) генерировать проблему судоку **
Код
импортировать java.util.random; import java.util.arraylist; открытый класс Suduku { / ***Печать двумерного массива, матрица судоку* / public static void printarray (int a [] []) {for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j+<9; +a [i] [j]); Статический ArrayList <Integer> creatninerondomarray () {Arraylist <Integer> list = new Arraylist <Integer> (); } randomNum = random.NextInt (9) +1; } System.out.println (); вернуть список; } /*** Сгенерировать случайную матрицу судоку через одномерный массив и исходный массив** Передача данных в двумерном массиве, найдите положение текущего значения в одномерном массиве и назначить одномерную массив* текущую позицию плюс значение позиции в текущую двухмерную массив. Цель состоит в том, чтобы использовать одномерный массив в качестве основы и обмениваться этими 9 данными в случайном порядке для создания случайной матрицы судоку. * */ public static void cuestsudokuarray (int [] [] seedarray, arraylist <Integer> randomlist) {for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j ++) {for (int k = 0; k <9; k ++) {if seedArray [i] [j] [in k = 0; k <9; k ++) {if seedArray [i] [j] = Seedarray [i] [j] = случайный список.get ((k+1)%9); перерыв; }}}} System.out.println ("Обработанный массив"); Suduku.printarray (Seedarray); } public static void createsudokuquestion (int [] [] a) {случайный rand = new Random (); for (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 sedarray [] [] = {{9,7,8,3,1,2,6,4,5}, {3,1,2,6,2,5,9,7,8}, {6,4,5,9,7,8,1,2} {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,7,1,1,1,1,5,6,4}, {2,3,5,1,1,1,1,1,1,1,5,4,4}, {2,3,5,1,1,1,1,1,1,5,4,4}}}}}, {8,9,7,2,3,1,5,6, {5,6,4,8,9,7,2,3,1,1}}; System.out.println («Оригинальный 2D массив:»); Suduku.printarray (Seedarray); ArrayList <Integer> randomlist = suduku.creatninerondomarray (); Suduku.creatsudokuarray (Seedarray, Randomlist); System.out.println («генерировать проблему судоку:»); Suduku.creatsudokuquestion (Seedarray); }}Выход:
9 8 3 1 2 4 5 6 4 8 9 7 5 6 4 8 9 7 2 3 1 5 6 4 8 9 7 2 3 1 5 6 8 9 7 5 6 8 9 7 3 1 5 6 4 8 9 7 2 3 1 5 6 8 9 7 5 6 8 9 7 3 1 5 6 4 8 9 7 2 3 1 5 6 8 9 7 5 6 8 9 2 3 1 5 6 6 8 9 9 2 3 1 5 6 8 9 7 5 6 8 9 2 3 1 5 6 6 8 8 9 2 3 1 5 6 8 9 7 5 6 8 9 2 3 1 5 6 6 8 9 8 1 3 1 5 6 8 9 5 6 4 9 7 3 1 5 6 6 4 8 9 2 3 1 5 6 8 9 5 6 8 9 2 3 1 5 6 6 4 8 9 2 3 1 5 6 8 9 7 5 6 8 9 2 3 1 5 6 6 8 8 9 2 3 1 5 6 8 9 5 6 8 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 0 6 0 2 0 0 5 7 0 2 0 0 6 0 9 2 0 5 7 0 2 0 5 7 0 2 0 0 0 9 2 0 0 5 0 2 0 5 7 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 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 6 0 0 0 9 2 0 0 5 7 0 2 0 5 7 0 2 0 0 0 0 6 0 2 0 0 5 7 0 0 0 5 7 0 0 5 7 0 0 0 0 0 0 2 0 0 2 0 2 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 2 0 2 0 2 0 0 0 2 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 2 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 0 2 0 2 0 0 0 2 0 0 0 2 0 2 0 0 2 0 0 0 2 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 2 0 0 0 2 0 0 2 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
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.