บทความนี้อธิบายถึงปัญหา Sudoku ที่ใช้โดย Java ตามอาร์เรย์สองมิติ แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ที่นี่เราใช้อาร์เรย์สองมิติ Java เพื่อใช้ปัญหา Sudoku
(1) สร้าง sudoku อย่างง่าย (2) สร้างปัญหา sudoku **
รหัส
นำเข้า java.util.random; นำเข้า java.util.arraylist; คลาสสาธารณะ suduku { / ***พิมพ์อาร์เรย์สองมิติ, sudoku matrix* / void printarray สาธารณะ (int a [] []) {สำหรับ (int i = 0; i <9; i ++) {สำหรับ (int j = 0; +a [i] [j]); arraylist แบบคงที่ <integer> creatninerondomarray () {arraylist <integer> list = arraylist ใหม่ <teger> (); list.add (Randomnum); } system.out.println (); รายการคืน; } /*** สร้างเมทริกซ์สุ่ม sudoku ผ่านอาร์เรย์หนึ่งมิติและอาร์เรย์ดั้งเดิม** ถ่ายโอนข้อมูลในอาร์เรย์สองมิติค้นหาตำแหน่งของค่าปัจจุบันในอาร์เรย์หนึ่งมิติและกำหนดอาร์เรย์หนึ่งมิติ* ตำแหน่งปัจจุบัน วัตถุประสงค์คือการใช้อาร์เรย์หนึ่งมิติเป็นพื้นฐานและเพื่อแลกเปลี่ยนข้อมูลทั้ง 9 เหล่านี้ในลำดับแบบสุ่มเพื่อสร้างเมทริกซ์สุ่มตัวอย่าง Sudoku * */ โมฆะคงที่สาธารณะ creatsudokuarray (int [] [] seedarray, arraylist <จำนวนเต็ม> รายการสุ่ม) {สำหรับ (int i = 0; i <9; i ++) {สำหรับ (int j = 0; j <9; j ++) {สำหรับ (int k = 0; k <9; SeedArray [i] [j] = Listlist.get ((k+1)%9); หยุดพัก; }}}} system.out.println ("อาเรย์ประมวลผล"); Suduku.printarray (Seedarray); } โมฆะคงที่สาธารณะ creatsudokuquestion (int [] [] a) {สุ่มแรนด์ = ใหม่สุ่ม (); สำหรับ (int i = 0; i <9; i ++) {สำหรับ (int j = 0; j <4; j ++) {a [i] [(int) rand.nextint (9)] = 0; }} suduku.printarray (a); } // โมฆะคงที่สาธารณะหลัก (String [] args) {int seedarray [] [] = {{9,7,8,3,1,1,2,6,4,5}, {3,1,2,6,4,5,9,7,8,8}, {6,4,5,9,8,8,8,8,8,8,8,8,8,8,8,8 {7,8,9,1,2,3,4,5,5,6,7,8,9}, {1,2,3,4,5,6,7,7,8,9}, {4,5,6,7,8,9,1,2,3,3,5,3,5,1,5,1,5,1,5,1,5,3,5,3,9,5,9,5,9,9,9,9,5s {5,6,4,8,9,7,2,3,1}}}; System.out.println ("อาร์เรย์ 2D ดั้งเดิม:"); Suduku.printarray (Seedarray); ArrayList <Integer> แบบสุ่ม = suduku.creatninerondomarray (); suduku.creatsudokuarray (seedarray, สุ่ม); System.out.println ("สร้างปัญหา sudoku:"); 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 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 7 7 7 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 9 2 0 0 5 7 0 2 0 0 6 0 9 2 0 0 5 7 0 2 0 5 7 0 2 0 0 6 0 0 0 0 0 0 0 0 0 0 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 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 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 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 0 3 9 6
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน