Este artigo descreve o problema de Sudoku implementado pelo Java com base em matrizes bidimensionais. Compartilhe -o para sua referência, como segue:
Aqui usamos matrizes bidimensionais Java para implementar o problema do Sudoku.
(1) Gere sudoku simples (2) Gere Sudoku Problem **
Código
importar java.util.random; importar java.util.arraylist; public class Suduku { / ***Imprima matriz bidimensional, matriz sudoku* / public static void printArray (int a [] [] []) {para (int i = 0; i <9; i ++) (Int a j = 0; +a [i] [j]); Arraylist estático <Teger> CreatninerOndomArray () {ArrayList <Teger> List = novo Arraylist <Teger> (); List.Add (Randomnum); } System.out.println (); lista de retorno; } /*** Gere uma matriz sudoku aleatória através da matriz unidimensional e a matriz original** transfira os dados na matriz bidimensional, encontre a posição do valor atual no conjunto unidimensional e atribua a matriz unidimensional* a posição atual mais um valor de posição para a corrente dupla atual. O objetivo é usar uma matriz unidimensional como base e trocar esses 9 dados em uma ordem aleatória para gerar uma matriz sudoku aleatória. * */ public static void CreatSudOkuarray (int [] [] SeedArray, ArrayList <Teger> RandomList) {for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j ++) {para (int k = 0; k <9; k ++) (selenAyy (j ++) {para (int k = 0; SeedArray [i] [j] = randomlist.get ((k+1)%9); quebrar; }}}} System.out.println ("matriz processada"); Suduku.printary (SeedArray); } public static void CreatSudOkuQuestion (int [] [] a) {aleatório rand = new aleatom (); for (int i = 0; i <9; i ++) {for (int j = 0; j <4; j ++) {a [i] [(int) rand.nextint (9)] = 0; }} Suduku.printary (a); } // public static void main(String[] args) { int seedArray[][]={ {9,7,8,3,1,2,6,4,5}, {3,1,2,6,4,5,9,7,8}, {6,4,5,9,7,8,3,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,2,3,1,5,6,4}, {2,3,1,5,6,4,8,9,7}, {5,6,4,8,9,7,2,3,1}}; System.out.println ("Array 2D original:"); Suduku.printary (SeedArray); ArrayList <Teger> randomlist = suduku.creatninerondomarray (); Suduku.creatsudokuarray (SeedArray, Lista Randomlista); System.out.println ("Gere Sudoku Problem:"); Suduku.creatsudokuquestion (SeedArray); }}Saída:
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 4 8 9 7 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 2 3 1 5 6 4 8 9 7 5 6 4 8 9 7 2 3 1 5 7 8 2 4 1 5 7 8 2 4 1 5 7 8 2 4 1 5 7 8 2 4 1 5 7 9 6 3 0 0 0 0 0 0 5 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 9 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 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 0 5 7 0 2 0 0 6 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 0 0 0 0 6 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
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.