تشترك الأمثلة الواردة في هذه المقالة في الكود المحدد للعبة Java Sudoku للرجوع إليه. المحتوى المحدد كما يلي
لعبة Sudoku التي كتبت بنفسي لديها 9 مستويات في المجموع ، والرمز كما يلي:
1. يتم استخدام فئة Doshudu لإنشاء صفائف Sudoku
استيراد java.util.random ؛ الفئة العامة doshudu { / ** * param args * / public static void main (string [] args) {// todo method method method int int [] [] [] cells = newShudu () ؛ // الخلايا = changeshu (الخلايا ، 9) ؛ لـ (int k = 0 ؛ k <9 ؛ k ++) {for (int i = 0 ؛ i <9 ؛ i ++) {system.out.print (cell [k] [i]) ؛ } system.out.println () ؛ }}} static int [] [] [] newshudu () {int [] [] الخلايا = new int [] [] {{1،2،3،4،5،6،7،8،9} ، {4،5،6،7،8،1،2،3} ، {2،3،1،5،6،4،8،7،7} ، {5،6،4،8،9،2،2،3،1} ، {8،9،7،2،3،1،5،6،4} ، {3،1،2،6،6،5،7،7،8} ، {9،7،8،3،1،2،6،4،5}} ؛ int counth = new Random (). nextInt (10) ؛ لـ (int k = 0 ؛ k <counth ؛ k ++) {cells = linetolie (الخلايا) ؛ } int count = 0 ؛ لـ (int k = 0 ؛ k <12 ؛ k ++) {count = new Random (). nextInt (9) ؛ الخلايا = changeline (الخلايا ، العد) ؛ } int counth2 = new Random (). nextint (10) ؛ لـ (int k = 0 ؛ k <counth2 ؛ k ++) {cells = linetolie (الخلايا) ؛ } إرجاع الخلايا ؛ } int static int [] [] changeline (int [] [] الخلايا ، int m) {// line and roof exchange int n = m ؛ int [] temp = new int [9] ؛ n = ((m+3)> = 9)؟ (m+3-9): m+3 ؛ لـ (int j = 0 ؛ j <9 ؛ j ++) {temp [j] = cell [m] [j] ؛ الخلايا [m] [j] = الخلايا [n] [j] ؛ الخلايا [n] [j] = temp [j] ؛ } إرجاع الخلايا ؛ } int static int [] [] linetolie (int [] [] الخلايا) {// line and column Exchange int temp = 0 ؛ لـ (int j = 0 ؛ j <9 ؛ j ++) {for (int k = j+1 ؛ k <9 ؛ k ++) {temp = cell [k] [j] ؛ الخلايا [k] [j] = الخلايا [j] [k] ؛ الخلايا [j] [k] = temp ؛ }} خلايا الإرجاع ؛ }} 2. فئة تشغيل الواجهة
استيراد java.awt.button ؛ استيراد java.awt.color ؛ استيراد java.awt.flowlayout ؛ استيراد java.awt.font ؛ استيراد java.awt.gridlayout ؛ استيراد java.awt.point ؛ استيراد java.awt.textfield ؛ استيراد java.awt.event.mouseadapter ؛ استيراد java.awt.event.mouseevent ؛ استيراد java.awt.event.mousemotionadapter ؛ استيراد java.awt.event.textevent ؛ استيراد java.awt.event.textListener ؛ استيراد java.util.random ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jlabel ؛ استيراد javax.swing.jpanel ؛ استيراد com.sun.awt.awtutilities ؛ الطبقة العامة Sudoku يمتد Jframe {Final Private Textfield [] [] txtgame ؛ int int static num = 20 ؛ // عدد المساحات الفارغة الثابتة int guan = 5 ؛ // عدد المستويات الثابتة int add = 5 ؛ // عدد المساحات الفارغة المضافة بعد الإقلاع عن الفراغ الثابت العام (سلسلة [] args) {sudoku shudu = new sudoku () ؛ } public sudoku () {// التخطيط الأولي لـ JFrame وإعدادات الاستماع txtgame = new textfield [9] [9] int [] [] الخلايا = shudu.getshudu () ؛ // الحصول على صفيف sudoku نهائي jpanel jpl = new jpanel () ؛ // إنشاء كائن jpanel النهائي int spacenum = num ؛ // spacenum يعني عدد intfields الفارغة التي تحتاج إلى تعيين jpl.setlayout (gridlayout جديد (9 ، 9). int [9] [9] ؛ // الإجابة على Sudoku Array System.ArrayCopy (الخلايا ، 0 ، السيلان ، 0 ، الخلايا. } system.out.println () ؛ } // نهاية طباعة this.setDefaultCloseOperation (this.exit_on_close) ؛ this.setsize (600 ، 600) ؛ this.setResible (false) ؛ this.settitle ("Dark Horse-Li Germany-Suku Game 9 Level") ؛ لـ (int i = 0 ؛ i <9 ؛ i ++) {for (int j = 0 ؛ j <9 ؛ j ++) {txtgame [i] [j] = new textfield () ؛ // قم بتعيين لون خلفية TextField if ((i <3 && j <3) || (i <6 && i> = 3 && j> = 3 && j <6) || (i <9 && i> = 6 && j> = 6 && j <9)) {txtgame [i]. } if ((i <6 && i> = 3 && j <3) || (i <3 && j> = 6 && j <9) || (i <9 && i> = 6 && j> = 3 && j <6)) {txtgame [i]. } if ((i <9 && i> = 6 && j <6)) {txtgame [i] [j] .SetBackground (color.green) ؛ } if ((i <9 && i> = 6 && j <6)) {txtgame [i] [j] .SetBackground (color.green) ؛ } if ((i <9 && i> = 6 && j <3) || (i <3 && j> = 3 && j <6) || (i <6 && i> = 3 && j <9 && j> = 6)) {txtgame [i]. } txtgame [i] [j] .setfont (خط جديد ("مربع الحوار" ، font.center_baseline ، 60)) ؛ // اضبط حجم الخط txtgame [i] [j] txtgame [i] [j] .SetEnabled (false) ؛ txtgame [i] [j] .SetVisible (true) ؛ jpl.add (txtgame [i] [j]) ؛ Jpl.SetVisible (صواب) ؛ }} النهائي int [] [] temparray = new int [spacenum] [2] ؛ Final JFrame JFM = New JFrame ("SELECT NUMBER") ؛ // إلغاء jframe title jfm.setundecorated (true) ؛ // إضافة JFRAME DRAG Function Final Point Origin = New Point () ؛ jfm.addmouselistener (new mouseadapter () {public void mousepressed (mouseevent e) {Origin.x = jfm.addmousemotionListener (mousemotionadapter () {public void mousedragged (mouseevent e) {point p = jfm.getlocation () ؛ // قم بتعيين JFrame على awturetabilities. Final JPanel JPNL = New JPanel (New GridLayout (3 ، 3)) ؛ JFM.SetLayout (NULL) ؛ Jfm.setsize (190 ، 200) ؛ jfm.setResible (false) ؛ JPNL.SetBounds (0 ، 0 ، 190 ، 120) ؛ jfm.setResible (false) ؛ لـ (int i = 0 ؛ i <spacenum ؛ i ++) {// set textfield ليكون فارغًا بشكل عشوائي استنادًا إلى عدد حقول النص الفارغة التي يجب أن تكون نهائية int rand1 = new Random (). nextint (9) ؛ النهائي int rand2 = new Random (). nextint (9) ؛ Temparray [i] [0] = rand1 ؛ Temparray [i] [1] = rand2 ؛ txtgame [rand1] [rand2] .settext ("") ؛ if ((Rand1 <3 && Rand2 <3) || (Rand1 <6 && Rand1> = 3 && Rand2> = 3 && Rand2 <6) || (Rand1 <9 && i> = 6 && Rand2> = 6 && Rand2 <9)) {txtgame [rand1]. } if ((rand1 <6 && rand1> = 3 && rand2 <3) || (rand1 <3 && rand2> = 6 && rand2 <9) || (rand1 <9 && rand1> = 6 && rand2> = 3 && rand2 <6)) {txtgame [rand1] } if ((rand1 <9 && rand1> = 6 && rand2 <3) || (rand1 <9 && rand1> = 6 && rand2 <3) || (rand1 <1 <10 && rand1> = 6 && Rand2 <3) || (Rand1 <100 3 && Rand2> = 3 && Rand2 <6) || {txtgame [rand1] [rand2] .SetBackground (color.pink) ؛ } txtgame [rand1] [rand2] .addmouselistener (new mouseadapter () {public void mouseclicked (mouseevent mouseevent) {jfm.getContentPane (). زر (F + 1) + ") ؛ Method TextGame المولدة تلقائيًا [Rand2] Btndel.SetBackground (color.red) ؛ TOD Auto Method Txtgame [RAND1] txtgame [rand1] [rand2] .addTextListener (new textListener () {// إضافة مستمع إلى ملعب textfield فارغ ، قارن الإجابات بعد تغيير القيمة ، اطبع "جيد" في وحدة التحكم إذا كانت جميع الإجابات صحيحة (uver) Spacenum ؛ Jpl.Removeall () ؛ Mouseclicked (Mouseevent e) jpl.updateui () ؛ txtgame [rand1] [rand2] .SetEnabled (true) ؛ } this.add (jpl) ؛ this.setVisible (صحيح) ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.