تصف هذه المقالة مشكلة Sudoku التي تنفذها Java استنادًا إلى المصفوفات ثنائية الأبعاد. شاركه للرجوع إليه ، على النحو التالي:
نحن هنا نستخدم المصفوفات ثنائية الأبعاد Java لتنفيذ مشكلة Sudoku.
(1) إنشاء سودوكو بسيط (2) توليد مشكلة سودوكو **
شفرة
استيراد java.util.random ؛ استيراد java.util.arraylist ؛ الطبقة العامة suduku { / ***صفيف ثنائي الأبعاد ، sudoku matrix* / public static void printarray (int a []) {for (int i = 0 ؛ +A [I] [J]) ؛ argylist argylist <integer> createNinerOmarray () } randomnum = random.nextint (9) +1 ؛ } system.out.println () ؛ قائمة العودة } /*** قم بإنشاء مصفوفة Sudoku عشوائية من خلال صفيف أحادي البعد والمصفوعة الأصلية** نقل البيانات في الصفيف ثنائي الأبعاد ، وابحث عن موضع القيمة الحالية في الصفيف أحادي البعد ، وتعيين الصفيف أحادي البعد* الموضع الحالي بالإضافة إلى قيمة الموضع الحالي ثنائي الأبعاد. والغرض من ذلك هو استخدام صفيف أحادي البعد كأساس ، وتبادل هذه البيانات التسعة بترتيب عشوائي لإنشاء مصفوفة Sudoku عشوائية. * */ public static void creatsudokuarray (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 (poysarray [i] seedarray [i] [j] = randomlist.get ((k+1) ٪ 9) ؛ استراحة؛ }}}} system.out.println ("صفيف معالج") ؛ Suduku.Printarray (Seedarray) ؛ } void static static preatsudokuquestion (int [] [] a) {random rand = new random () ؛ لـ (int i = 0 ؛ i <9 ؛ i ++) {for (int j = 0 ؛ j <4 ؛ j ++) {a [i] [(int) rand.nextint (9)] = 0 ؛ }} suduku.printarray (a) ؛ }. {7،8،9،1،2،3،4،5،6،7،9} ، {1،2،3،5،5،7،8،9} ، {4،5،6،7،8،9،1،2،1،5،5،5،4،5،5،4،5،4،5،4،4،5،4،5،4،4،5،4،5،4،5،5،4،4،4،5،4،4،5،4،4،5،5،4،5،5،4،5،4،5،4،5،4،5،4،5،4،5،4،5،5،5،5،5،4،5،4،5،5،4،5،4،5،5،4،5،4،5،5،5،4،5،5،5،4،5،5،5،4،5،5،5،4،5،4،5،5،5. {5،6،4،8،9،7،2،3،1}} ؛ System.out.println ("Artical 2D Array:") ؛ Suduku.Printarray (Seedarray) ؛ ArrayList <integer> randomlist = suduku.creatninerOndomArray () ؛ Suduku.Creatsudokuarray (Seedarray ، Randomlist) ؛ System.out.println ("إنشاء مشكلة Sudoku:") ؛ suduku.creatsudokuquestion (seedarray) ؛ }}الإخراج:
9 8 3 1 2 4 5 6 4 8 7 5 5 5 6 4 8 7 2 3 1 5 6 4 8 9 7 2 3 1 5 6 4 8 7 5 6 4 8 7 7 2 3 1 5 6 4 8 7 6 4 8 7 8 0 5 7 0 2 4 1 0 7 9 6 0 5 0 1 6 0 9 2 0 0 0 0 0 0 0 0 0 5 7 0 0 0 0 0 0 0 9 2 0 0 5 7 0 2 - 0 0 6 0 9 2 0 0 5 7 0 2 0 0 5 7 0 2 0 0 0 0 0 0 0 0 9 2 0 0 5 7 0 0 0 0 0 5 7 0 0 0 0 0 0 0 6 0 9 2 0 0 5 7 0 0 0 0 5 7 - 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 وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.