java数独游戏完整版分享

网友投稿 1042 2023-03-05


java数独游戏完整版分享

本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下

自己写的数独游戏,共9关,代码如下:

1、DoShudu类用于产生数独数组

import java.util.Random;

public class DoShudu {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int[][] cells=newshudu();

//cells=changeShu(cells,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,2,3,4,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,5,6,4},

{3,1,2,6,4,5,9,7,8},

{6,4,5,9,7,8,3,1,2},

{9,7,8,3,1,2,6,4,5}

};

int countH=new Random().nextInt(10);

for(int k=0;k

cells=lineTolie(cells);

}

int count=0;

for(int k=0;k<12;k++){

count=new Random().nextInt(9);

cells=changeLine(cells,count);

}

int countH2=new Random().nextInt(10);

for(int k=0;k

cells=lineTolie(cells);

}

return cells;

}

public static int [][] changeLine(int[][] cells,int m){//行与行交换

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]=cells[m][j];

cells[m][j]=cells[n][j];

cells[n][j]=temp[j];

}

return cells;

}

public static int[][] lineTolie(int[][] cells){//行与列互换

int temp=0;

for(int j=0;j<9;j++){

for(int k=j+1;k<9;k++){

temp=cells[k][j];

cells[k][j]=cells[j][k];

cells[j][k]=temp;

}

}

return cells;

}

}

2、界面运行类

import java.awt.Button;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Point;

import java.awt.TextField;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import java.awt.event.TextEvent;

import java.awt.event.TextListener;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;

public class Sudoku extends JFrame {

final private TextField[][] txtGame;

static int num=20;//空白格数量

static int guan=5;//关卡数量

static int add=5;//没关过后增加的空VUHiKNeYXC白格数量

public static 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();// 获取数独数组

final JPanel jpl = new JPanel();// 建立JPanel对象

final int spaceNum = num;// spaceNum表示需要设置空白TextField的数量

jpl.setLayout(new GridLayout(9, 9));// JPanel布局

final int[][] cellAn = new int[9][9];// 数独数组的答案

System.arraycopy(cells, 0, cellAn, 0, cells.length);// 答案从建立的数独数组中Copy

for (int i = 0; i < 9; i++) {// 把答案从Console打印出来

for (int j VUHiKNeYXC= 0; j < 9; j++) {

System.out.print(cellAn[i][j]);

}

System.out.println();

} // 打印结束

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

this.setSize(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)

VUHiKNeYXC || (i < 9 && i >= 6 && j >= 3 && 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("选择数字");

// 取消JFrame title

jfm.setUndecorated(true);

// 增加JFrame拖拽功能

final Point 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(p.x + e.getX() - origin.x, p.y + e.getY()

- origin.y);

}

});

// 设置JFrame为半透明

AWTUtilities.setWindowOpacity(jfm, 0.7f);

final JPanel jpnl = new 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++) {// 依据需要空白的TextField数量,随机对TextField设置为空

final 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 < 3 && ranD2 >= 3 && ranD2 < 6)

|| (ranD1 < 6 && ranD1 >= 3 && ranD2 < 9 && ranD2 >= 6)) {

txtGame[ranD1][ranD2].setBackground(Color.PINK);

}

txtGame[ranD1][ranD2].addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent mouseevent) {

jfm.getContentPane().removeAll();// 移出了所有的组件

jpnl.removeAll();

for (int f = 0; f < 9; f++) {

final Button btn = new Button((f + 1) + "");

btn.setForeground(Color.RED);

btn.setBackground(Color.WHITE);

btn

.setFont(new Font("Dialog",

Font.CENTER_BASELINE, 30));

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText(btn.getLabel()

+ txtGame[ranD1][ranD2].getText());

}

});

jpnl.add(btn);

}

Button btnDel = new Button(" 清 空 ");

btnDel.setForeground(Color.WHITE);

btnDel.setBackground(Color.RED);

btnDel

.setFont(new Font("Dialog", Font.CENTER_BASELINE,

30));

btnDel.setBounds(0, 120, 190, 50);

btnDel.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText("");

}

});

jfm.add(jpnl);

jfm.add(btnDel);

jfm.setVisible(true);

}

});

txtGame[ranD1][ranD2].addTextListener(new TextListener() {// 对空白的TextField添加监听,数值发生变化后进行答案对比,如果全部答对在Console打印“good”

@Override

public void textValueChanged(TextEvent e) {

TextField tmp = (TextField) e.getSource();

int count = 0;

for (int u = 0; u < spaceNum; u++) {

if ((txtGame[tempArray[u][0]][tempArray[u][1]]

.getText())

.equals(Integer

.toString(cellAn[tempArray[u][0]][tempArray[u][1]]))) {

count++;

}

}

if (count == spaceNum) {

jpl.removeAll();

FlowLayout blt = new FlowLayout();

jpl.setLayout(blt);

if(num<=3){

jpl.add(new JLabel("恭喜你过关"));

Button btn = new Button("进入下一关");

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

Sudoku.this.dispose();

jfm.dispose();

num=num+add;

new Sudoku();

}

});

jpl.add(btn);

}

else{

jpl.add(new JLabel("恭喜 你已经完成所有关卡!"));

}

jpl.updateUI();

System.out.println("good");

}

}

});

txtGame[ranD1][ranD2].setEnabled(true);

}

this.add(jpl);

this.setVisible(true);

}

}

cells=lineTolie(cells);

}

int count=0;

for(int k=0;k<12;k++){

count=new Random().nextInt(9);

cells=changeLine(cells,count);

}

int countH2=new Random().nextInt(10);

for(int k=0;k

cells=lineTolie(cells);

}

return cells;

}

public static int [][] changeLine(int[][] cells,int m){//行与行交换

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]=cells[m][j];

cells[m][j]=cells[n][j];

cells[n][j]=temp[j];

}

return cells;

}

public static int[][] lineTolie(int[][] cells){//行与列互换

int temp=0;

for(int j=0;j<9;j++){

for(int k=j+1;k<9;k++){

temp=cells[k][j];

cells[k][j]=cells[j][k];

cells[j][k]=temp;

}

}

return cells;

}

}

2、界面运行类

import java.awt.Button;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Point;

import java.awt.TextField;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import java.awt.event.TextEvent;

import java.awt.event.TextListener;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;

public class Sudoku extends JFrame {

final private TextField[][] txtGame;

static int num=20;//空白格数量

static int guan=5;//关卡数量

static int add=5;//没关过后增加的空VUHiKNeYXC白格数量

public static 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();// 获取数独数组

final JPanel jpl = new JPanel();// 建立JPanel对象

final int spaceNum = num;// spaceNum表示需要设置空白TextField的数量

jpl.setLayout(new GridLayout(9, 9));// JPanel布局

final int[][] cellAn = new int[9][9];// 数独数组的答案

System.arraycopy(cells, 0, cellAn, 0, cells.length);// 答案从建立的数独数组中Copy

for (int i = 0; i < 9; i++) {// 把答案从Console打印出来

for (int j VUHiKNeYXC= 0; j < 9; j++) {

System.out.print(cellAn[i][j]);

}

System.out.println();

} // 打印结束

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

this.setSize(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)

VUHiKNeYXC || (i < 9 && i >= 6 && j >= 3 && 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("选择数字");

// 取消JFrame title

jfm.setUndecorated(true);

// 增加JFrame拖拽功能

final Point 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(p.x + e.getX() - origin.x, p.y + e.getY()

- origin.y);

}

});

// 设置JFrame为半透明

AWTUtilities.setWindowOpacity(jfm, 0.7f);

final JPanel jpnl = new 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++) {// 依据需要空白的TextField数量,随机对TextField设置为空

final 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 < 3 && ranD2 >= 3 && ranD2 < 6)

|| (ranD1 < 6 && ranD1 >= 3 && ranD2 < 9 && ranD2 >= 6)) {

txtGame[ranD1][ranD2].setBackground(Color.PINK);

}

txtGame[ranD1][ranD2].addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent mouseevent) {

jfm.getContentPane().removeAll();// 移出了所有的组件

jpnl.removeAll();

for (int f = 0; f < 9; f++) {

final Button btn = new Button((f + 1) + "");

btn.setForeground(Color.RED);

btn.setBackground(Color.WHITE);

btn

.setFont(new Font("Dialog",

Font.CENTER_BASELINE, 30));

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText(btn.getLabel()

+ txtGame[ranD1][ranD2].getText());

}

});

jpnl.add(btn);

}

Button btnDel = new Button(" 清 空 ");

btnDel.setForeground(Color.WHITE);

btnDel.setBackground(Color.RED);

btnDel

.setFont(new Font("Dialog", Font.CENTER_BASELINE,

30));

btnDel.setBounds(0, 120, 190, 50);

btnDel.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText("");

}

});

jfm.add(jpnl);

jfm.add(btnDel);

jfm.setVisible(true);

}

});

txtGame[ranD1][ranD2].addTextListener(new TextListener() {// 对空白的TextField添加监听,数值发生变化后进行答案对比,如果全部答对在Console打印“good”

@Override

public void textValueChanged(TextEvent e) {

TextField tmp = (TextField) e.getSource();

int count = 0;

for (int u = 0; u < spaceNum; u++) {

if ((txtGame[tempArray[u][0]][tempArray[u][1]]

.getText())

.equals(Integer

.toString(cellAn[tempArray[u][0]][tempArray[u][1]]))) {

count++;

}

}

if (count == spaceNum) {

jpl.removeAll();

FlowLayout blt = new FlowLayout();

jpl.setLayout(blt);

if(num<=3){

jpl.add(new JLabel("恭喜你过关"));

Button btn = new Button("进入下一关");

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

Sudoku.this.dispose();

jfm.dispose();

num=num+add;

new Sudoku();

}

});

jpl.add(btn);

}

else{

jpl.add(new JLabel("恭喜 你已经完成所有关卡!"));

}

jpl.updateUI();

System.out.println("good");

}

}

});

txtGame[ranD1][ranD2].setEnabled(true);

}

this.add(jpl);

this.setVisible(true);

}

}

cells=lineTolie(cells);

}

return cells;

}

public static int [][] changeLine(int[][] cells,int m){//行与行交换

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]=cells[m][j];

cells[m][j]=cells[n][j];

cells[n][j]=temp[j];

}

return cells;

}

public static int[][] lineTolie(int[][] cells){//行与列互换

int temp=0;

for(int j=0;j<9;j++){

for(int k=j+1;k<9;k++){

temp=cells[k][j];

cells[k][j]=cells[j][k];

cells[j][k]=temp;

}

}

return cells;

}

}

2、界面运行类

import java.awt.Button;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Point;

import java.awt.TextField;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import java.awt.event.TextEvent;

import java.awt.event.TextListener;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;

public class Sudoku extends JFrame {

final private TextField[][] txtGame;

static int num=20;//空白格数量

static int guan=5;//关卡数量

static int add=5;//没关过后增加的空VUHiKNeYXC白格数量

public static 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();// 获取数独数组

final JPanel jpl = new JPanel();// 建立JPanel对象

final int spaceNum = num;// spaceNum表示需要设置空白TextField的数量

jpl.setLayout(new GridLayout(9, 9));// JPanel布局

final int[][] cellAn = new int[9][9];// 数独数组的答案

System.arraycopy(cells, 0, cellAn, 0, cells.length);// 答案从建立的数独数组中Copy

for (int i = 0; i < 9; i++) {// 把答案从Console打印出来

for (int j VUHiKNeYXC= 0; j < 9; j++) {

System.out.print(cellAn[i][j]);

}

System.out.println();

} // 打印结束

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

this.setSize(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)

VUHiKNeYXC || (i < 9 && i >= 6 && j >= 3 && 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("选择数字");

// 取消JFrame title

jfm.setUndecorated(true);

// 增加JFrame拖拽功能

final Point 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(p.x + e.getX() - origin.x, p.y + e.getY()

- origin.y);

}

});

// 设置JFrame为半透明

AWTUtilities.setWindowOpacity(jfm, 0.7f);

final JPanel jpnl = new 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++) {// 依据需要空白的TextField数量,随机对TextField设置为空

final 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 < 3 && ranD2 >= 3 && ranD2 < 6)

|| (ranD1 < 6 && ranD1 >= 3 && ranD2 < 9 && ranD2 >= 6)) {

txtGame[ranD1][ranD2].setBackground(Color.PINK);

}

txtGame[ranD1][ranD2].addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent mouseevent) {

jfm.getContentPane().removeAll();// 移出了所有的组件

jpnl.removeAll();

for (int f = 0; f < 9; f++) {

final Button btn = new Button((f + 1) + "");

btn.setForeground(Color.RED);

btn.setBackground(Color.WHITE);

btn

.setFont(new Font("Dialog",

Font.CENTER_BASELINE, 30));

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText(btn.getLabel()

+ txtGame[ranD1][ranD2].getText());

}

});

jpnl.add(btn);

}

Button btnDel = new Button(" 清 空 ");

btnDel.setForeground(Color.WHITE);

btnDel.setBackground(Color.RED);

btnDel

.setFont(new Font("Dialog", Font.CENTER_BASELINE,

30));

btnDel.setBounds(0, 120, 190, 50);

btnDel.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

txtGame[ranD1][ranD2].setText("");

}

});

jfm.add(jpnl);

jfm.add(btnDel);

jfm.setVisible(true);

}

});

txtGame[ranD1][ranD2].addTextListener(new TextListener() {// 对空白的TextField添加监听,数值发生变化后进行答案对比,如果全部答对在Console打印“good”

@Override

public void textValueChanged(TextEvent e) {

TextField tmp = (TextField) e.getSource();

int count = 0;

for (int u = 0; u < spaceNum; u++) {

if ((txtGame[tempArray[u][0]][tempArray[u][1]]

.getText())

.equals(Integer

.toString(cellAn[tempArray[u][0]][tempArray[u][1]]))) {

count++;

}

}

if (count == spaceNum) {

jpl.removeAll();

FlowLayout blt = new FlowLayout();

jpl.setLayout(blt);

if(num<=3){

jpl.add(new JLabel("恭喜你过关"));

Button btn = new Button("进入下一关");

btn.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

Sudoku.this.dispose();

jfm.dispose();

num=num+add;

new Sudoku();

}

});

jpl.add(btn);

}

else{

jpl.add(new JLabel("恭喜 你已经完成所有关卡!"));

}

jpl.updateUI();

System.out.println("good");

}

}

});

txtGame[ranD1][ranD2].setEnabled(true);

}

this.add(jpl);

this.setVisible(true);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api开发接口文档(api接口文档是干什么的)
下一篇:接口测试怎么写测试用例(接口测试用例包含哪些内容)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~