이 기사의 예는 참조를 위해 Java Suboku 게임의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
내가 쓴 스도쿠 게임은 총 9 레벨을 가지고 있으며 코드는 다음과 같습니다.
1. Doshudu 클래스는 스도쿠 어레이를 생성하는 데 사용됩니다
java.util.random import; 공개 클래스 doshudu { / ** * @param args * / public static void main (String [] args) {// todo 자동 생성 메소드 Stub int [] 셀 = newshudu (); // cells = changeshu (cells, 9); for (int k = 0; k <9; k ++) {for (int i = 0; i <9; i ++) {system.out.print (셀 [k] [i]); } system.out.println (); }} public static int [] [] newshudu () {int [] [] 셀 = new int [] [] {{1,2,3,4,5,6,6,7,8,9}, {4,5,6,7,8,1,2,3}, {7,8,9,1,2,3,4,5,6}, {2,3,1,5,6,4,8,9,7}, {5,6,4,8,9,7,2,3,3,1}, {8,9,7,2,3,1,5,6,4}, {3,1,2,6,4,4,5,9,8}, {6,4,5,9,1,2}, {9,7,8,3,1,6,4,5}}; int counth = new random (). nextint (10); for (int k = 0; k <counth; k ++) {cell = linetolie (세포); } int count = 0; for (int k = 0; k <12; k ++) {count = new random (). NextInt (9); 세포 = changeline (세포, 수); } int counth2 = new random (). NextInt (10); for (int k = 0; k <counth2; k ++) {cell = linetolie (세포); } 리턴 셀; } public static int [] [] changeline (int [] [] 셀, int m) {// line and 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] = 온도 [J]; } 리턴 셀; } public static int [] [] linetolie (int [] [] 셀) {// 라인 및 열 교환 int temp = 0; for (int j = 0; j <9; j ++) {for (int k = j+1; k <9; k ++) {temp = 셀 [k] [j]; 세포 [k] [j] = 세포 [j] [k]; 세포 [j] [k] = 온도; }} 리턴 셀; }} 2. 인터페이스 작동 클래스
Java.awt.Button 가져 오기; import java.awt.color; java.awt.flowlayout 가져 오기; Java.awt.Font 가져 오기; import java.awt.gridlayout; Java.awt.Point 가져 오기; java.awt.textfield import; import java.awt.event.mouseadapter; java.awt.event.mouseevent import; java.awt.event.mouseMotionAdapter를 가져옵니다. java.awt.event.textevent import; import java.awt.event.textListener; java.util.random import; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import com.sun.awt.awtutilities; 공개 클래스 스도쿠는 jframe {Final Private Textfield [] [] txtGame을 확장합니다. 정적 int num = 20; // 빈 공간 수 정적 int guan = 5; // 레벨 수 정적 int add = 5; // 공개 정적 무효 메인 (String [] args)을 종료 한 후 추가 된 빈 공간 수 {Sudoku shudu = new Sudoku (); } public sudoku () {// JFrame의 초기 레이아웃 및 청취 설정 txtGame = new TextField [9] [9]; // 81 TextField 객체 Doshudu Shudu = New Doshudu (); int [] [] cell = shudu.getshudu (); // Sudoku 어레이 최종 JPanel jpl = new JPanel (); // JPANEL 객체 최종 spacenum = num; // spacenum 생성 jpl.setLayout (9, 9, 9, 9, 9); int [9] [9]; // Sudoku Array System.arraycopy (Cells, 0, Cellan, 0, Cells.length)에 대한 답변; // 답은 (int i = 0; i <9; i ++)에 대한 생성 된 Sudoku 배열 사본에서 나온 것입니다 (int J = 0; } system.out.println (); } // 인쇄 종료 this.setDefaultCloseOperation (this.exit_on_close); this.setsize (600, 600); this.setResizable (false); this.settitle ( "Dark Horse-Li Germany-Suku Game 9 Level"); for (int i = 0; i <9; i ++) {for (int j = 0; j <9; j ++) {txtGame [i] [j] = new 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] .settext (integer.toString (셀 [i] [J])); txtgame [i] [j] .setenabled (false); txtgame [i] [j] .setvisible (true); jpr.add (txtgame [i] [j]); jpl.set -Visible (true); }} final int [] [] temparray = new int [spacenum] [2]; 최종 JFrame JFM = New Jframe ( "Select Number"); // JFRAME 제목 취소 jfm.setUndEcorated (true); // JFrame 드래그 함수 추가 최종 포인트 원점 = 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 (); // JFrame을 반투명 awtutilities.setWindOwOpication (jfm, 0.7f)으로 설정합니다. 최종 JPANEL JPNL = 새로운 JPANEL (New GridLayout (3, 3)); jfm.setlayout (null); JFM.Setsize (190, 200); jfm.setResizable (false); jpnl.setbounds (0, 0, 190, 120); jfm.setResizable (false); for (int i = 0; i <spacenum; i ++) {// 텍스트 필드를 최종 int rand11 = 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] [rand2] .setbackground (color.orange); } if ((rand1 <6 && rand1> = 3 && rand2 <3) || (rand1 <3 && rand2> = 6 && rand2 <9) || (rand1 <9 && rand1> = 6 && rand2 <6)) {txtgame [rand1] [rand2]. } 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 (). removeall (); // jpnl.removall (); for (for); 버튼 (f + 1) + ") btn.red. 자동 제작 된 방법 Stub TxtGame [rand2] .settext (btn.getlabel () [rand2]. btndel.setbackground (color.red). TODO가 자율적 인 스터브 TXTGAME [rand2] .Settext ( ""); txtGame [rand1] [rand2] .addtextListener (new TextListener () {// 빈 텍스트 필드에 리스너를 추가하고 값이 변경된 후 답변을 비교하고, 모든 답변이 올바른 경우 콘솔에서 "좋은"인쇄를 비교합니다. spacenum; u ++) {if (txtgame [temparray [u] [0]] [temparray [u] [1] .getText ()) .equals (integer .ToString [temparray [u] [0]] [temparray [u] [1]])) {count ++; jpr.removeall (); Mouseecevent (Mouseevent e) {// jfm.dispose (); jpr.updateui (); txtgame [rand1] [rand2] .setenabled (true); } this.add (jpl); this.set -Visible (true); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.