Примеры в этой статье делятся конкретным кодом игры Java Sudoku для вашей ссылки. Конкретный контент заключается в следующем
В игре Sudoku, которую я написал сам, имеет в общей сложности 9 уровней, а код выглядит следующим образом:
1. класс Doshudu используется для генерации массивов Sudoku
импортировать java.util.random; открытый класс doshudu { / ** * @param args * / public static void main (string [] args) {// todo автоматически генерируемый метод stub int [] [] cells = newshudu (); // клетки = Чангешу (клетки, 9); for (int k = 0; k <9; k ++) {for (int i = 0; i <9; i ++) {System.out.print (cells [k] [i]); } System.out.println (); }} public static int [] [] newshudu () {int [] [] cells = new int [] [] {{1,2,3,4,5,6,7,8,9}, {4,5,6,7,8,9,1,2,3}, {7,8,9,1,3,5,6} {2,3,1,5,6,4,8,9,7}, {5,6,4,8,9,7,2,3,1}, {8,9,7,2,3,1,1,5,6,4}, {3,1,2,6,4,5,9,7,8}, {6,4,5,9,7,3,2,2,9,7,8}, {6,4,5,9,1,1,2,9,7,7, {9,7,8,3,1,2,6,4,5,5}}; int count = new random (). nextint (10); for (int k = 0; k <Countth; k ++) {cells = linetolie (клетки); } int count = 0; for (int k = 0; k <12; k ++) {count = new random (). nextint (9); клетки = Чанглин (клетки, счет); } int count2 = new random (). nextint (10); for (int k = 0; k <counth2; k ++) {cells = linetolie (клетки); } возвращаемые ячейки; } public static int [] [] changeline (int [] [] ячейки, int m) {// line и row Exchange int n = m; int [] temp = new int [9]; n = ((M+3)> = 9)? (M+3-9): M+3; for (int j = 0; j <9; j ++) {temp [j] = клетки [m] [j]; клетки [m] [j] = клетки [n] [j]; клетки [n] [j] = temp [j]; } возвращаемые ячейки; } public static int [] [] linetolie (int [] [] cells) {// Line и Column Exchange int temp = 0; for (int j = 0; j <9; j ++) {for (int k = j+1; k <9; k ++) {temp = cells [k] [j]; клетки [k] [j] = клетки [j] [k]; клетки [j] [k] = темп; }} возвращаемые ячейки; }} 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 Extens Jframe {final Private Textfield [] [] txtgame; static int num = 20; // количество пустых пространств static int guan = 5; // Количество уровней статическое int add = 5; // Количество пустых пространств, добавленных после отказа от публичной статической void main (string [] args) {sudoku shudu = new sudoku (); } public sudoku () {// Начальный макет настройки JFrame и прослушивания txtgame = new Textfield [9] [9]; // Создание 81 объектов Textfield Doshudu shudu = new Doshudu (); int [] [] cells = shudu.getshudu (); // Получить массив судоку окончательный jpanel jpl = new jpanel (); // Создать объект jpanel final int spacenum = num; // spacenum означает количество пустых текстовых полей, которые необходимо установить jpl.setlayout (new GridLayout (9, 9, 9); int [9] [9]; // Ответ на систему матрицы Sudoku. Arraycopy (Cells, 0, Cellan, 0, Cells.length); // Ответ взят из созданной копии массива судоку для (int i = 0; i <9; i ++) {// Печать ответа из консоли для (int j = 0; j <9; j ++) {System.out.print (i]; } System.out.println (); } // Конец печати this.setDefaultCloseoperation (this.exit_on_close); это. setize (600, 600); this.SetReSizable (false); this.SetTitle («Темный лошадь-ли-то Германия-Суку, уровень 9 уровня»); for (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] [j] .Setbackground (color.orange); } if ((i <6 && i> = 3 && j <3) || (i <3 && j> = 6 && j <9) || (i <9 && i> = 6 && j> = 3 && 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 <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] [j] .setbackground (color.pink); } txtgame [i] [j] .setFont (new Font ("Dialog", font.center_baseline, 60)); // Установить размер шрифта txtgame [i] [j] .settext (integer.tostring (cells [i] [j])); txtgame [i] [j] .setEnabled (false); txtgame [i] [j] .setvisible (true); jpl.add (txtgame [i] [j]); jpl.setvisible (true); }} final int [] [] temparray = new int [spacenum] [2]; final jframe jfm = new jframe ("select number"); // Отменить заголовок jframe jfm.setundecorated (true); // Добавить функцию перетаскивания jFrame окончательная точка Origin = new Point (); jfm.AddMouseListener (new MouseAdapter () {public void mousepressed (mouseevent e) {origin.x = e.getx (); origin.y = e.gety ();}}); jfm.addmousemotionlistener (new MousemotionAdapter () {public void mouseDragged (mouseevent e) {point p = jfm.getlocation (); jfm.setlocation (px + e.getx () - Origin.x, py + e.gety () - origin.y);}}); // установить jframe на полупрозрачные aeatilities.setWindowOpacity (JFM, 0,7F); final jpanel jpnl = new jpanel (new Gridlayout (3, 3)); jfm.setlayout (null); jfm.setize (190, 200); jfm.setReSizable (false); jpnl.setbounds (0, 0, 190, 120); jfm.setReSizable (false); for (int i = 0; i <spacenum; i ++) {// установить текстовое поле, чтобы быть пустым случайным образом на основе количества пустых текстовых полей, которые должны быть окончательными int rand1 = new Random (). Nextint (9); final 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] [rand2] .setbackground (color.orange); } if ((rand1 <6 && rand1> = 3 && rand2 <3) || (rand1 <3 && rand2> = 6 && rand2 <9) || (rand1 <9 && rand1> = 6 && rand2> = 3 && rand2 <6)) {txtgame [rand1] [rand2] .setbackground (color.green); } 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) | ndd1) = 3 && 3 && = 3 && 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 && = 3 & & {txtgame [rand1] [rand2] .setbackground (color.pink); } txtGame [RAND1] [RAND2] .AddMouseListener (new MouseAdapter () {public void mouseClicked (mouseevent mouseevent) {jfm.getContentPane (). Removeall (); // Удалил все компоненты jpnl.removeall (); for (int fsem; Кнопка (F + 1) + ""); Todo Autogenceed Method Txtgame [RAND1] [RAND2] .Settext (btn.getlabel () + txtgame [RAND1] [RAND2] .getText ()); Btndel.setbackground (Color.red); TODO AUTOGENTED MEDICE TXTGAME [RAND1] [RAND2]. txtgame [RAND1] [RAND2] .ADDTEXTLISTERENER (new TextListener () {// Добавить слушателя в пустое текстовое поле, сравните ответы после изменения значения, печати «Хорошо» в консоли, если все ответы правильны @Override public void textvalueChanged (texstevent e) {textfield tmp = (protportfield) e. () in in in in in u (u u); Spacenum; jpl.removeall (); Mouseeclice (Mouseevent E) {// jpl.updateui (); txtgame [rand1] [rand2] .setEnabled (true); } this.add (jpl); this.setvisible (true); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.