java数独游戏代码(java数独游戏代码设计思路)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享java数独游戏代码的知识,其中也会对java数独游戏代码设计思路进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

Java数独游戏代码

public class ShuDu {

/**存储数字的数组*/

static int[][] n = new int[9][9];

/**生成随机数字的源数组,随机数字从该数组中产生*/

static int[] num = {1,2,3,4,5,6,7,8,9};

public static void main(String[] args) {

//生成数字

for(int i = 0;i 9;i++){

//尝试填充的数字次数

int time = 0;

//填充数字

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

//产生数字

n[i][j] = generateNum(time);

//如果返回值为0,则代表卡住,退回处理

//退回处理的原则是:如果不是第一列,则先倒退到前一列,否则倒退到前一行的最后一列

if(n[i][j] == 0){

//不是第一列,则倒退一列

if(j 0){

j-=2;

continue;

}else{//是第一列,则倒退到上一行的最后一列

i--;

j = 8;

continue;

}

}

//填充成功

if(isCorret(i,j)){

//初始化time,为下一次填充做准备

time = 0;

}else{ //继续填充

//次数增加1

time++;

//继续填充当前格

j--;

}

}

}

//输出结果

for(int i = 0;i 9;i++){

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

System.out.print(n[i][j] + " ");

}

System.out.println();

}

}

/**

* 是否满足行、列和3X3区域不重复的要求

* @param row 行号

* @param col 列号

* @return true代表符合要求

*/

public static boolean isCorret(int row,int col){

return (checkRow(row) checkLine(col) checkNine(row,col));

}

/**

* 检查行是否符合要求

* @param row 检查的行号

* @return true代表符合要求

*/

public static boolean checkRow(int row){

for(int j = 0;j 8;j++){

if(n[row][j] == 0){

continue;

}

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

if(n[row][j] == n[row][k]){

return false;

}

}

}

return true;

}

/**

* 检查列是否符合要求

* @param col 检查的列号

* @return true代表符合要求

*/

public static boolean checkLine(int col){

for(int j = 0;j 8;j++){

if(n[j][col] == 0){

continue;

}

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

if(n[j][col] == n[k][col]){

return false;

}

}

}

return true;

}

/**

* 检查3X3区域是否符合要求

* @param row 检查的行号

* @param col 检查的列号

* @return true代表符合要求

*/

public static boolean checkNine(int row,int col){

//获得左上角的坐标

int j = row / 3 * 3;

int k = col /3 * 3;

//循环比较

for(int i = 0;i 8;i++){

if(n[j + i/3][k + i % 3] == 0){

continue;

}

for(int m = i+ 1;m 9;m++){

if(n[j + i/3][k + i % 3] == n[j + m/3][k + m % 3]){

return false;

}

}

}

return true;

}

/**

* 产生1-9之间的随机数字

* 规则:生成的随机数字放置在数组8-time下标的位置,随着time的增加,已经尝试过的数字将不会在取到

* 说明:即第一次次是从所有数字中随机,第二次时从前八个数字中随机,依次类推,

* 这样既保证随机,也不会再重复取已经不符合要求的数字,提高程序的效率

* 这个规则是本算法的核心

* @param time 填充的次数,0代表第一次填充

* @return

*/

public static int generateNum(int time){

//第一次尝试时,初始化随机数字源数组

if(time == 0){

for(int i = 0;i 9;i++){

num[i] = i + 1;

}

}

//第10次填充,表明该位置已经卡住,则返回0,由主程序处理退回

if(time == 9){

return 0;

}

//不是第一次填充

//生成随机数字,该数字是数组的下标,取数组num中该下标对应的数字为随机数字

int ranNum = (int)(Math.random() * (9 - time));

//把数字放置在数组倒数第time个位置,

int temp = num[8 - time];

num[8 - time] = num[ranNum];

num[ranNum] = temp;

//返回数字

return num[8 - time];

}

}

求破解九九宫格JAVA代码

JAVA不熟,不过算法都差不多。

等会给你个C/C++的。

我用C++做出来了.

基本思路说下:

先定义类

class JiuGong

{

public:

int table[9][9];//这个是九宫里的数学 不知道的用0代替

bool mark[9][9];//这个表示九宫状态,true表示已知的,可以不计算的

int x;

int y;//x,y表示当前正在试验的点

JiuGong *pre;//这是后面堆栈用的

bool check();//这函数进行九宫检查,包括行/列/小九宫的查错

bool finish();//这函数检查是否已经完成

bool find();//这函数用来找到下一个未知点(试验点)位置

}

再定义一个类 这是个堆栈

class JiuGongStack()

{

public:

JiuGong *top;

bool push(JiuGong *p);//压

bool pop(JiuGong *p);//弹

}

推算过程:

先声明一个JiuGong结构,导入初始值.

用成员函数find()找到第一个未知点.

以下循环:

{

在试验点数字加1

用成员函数finish()检查是否结束

Y- 成功 返回

N- 向下

检查数字9

Y-POP -POP失败 -题目错误 返回

N-向下

用成员函数check()查错

无错-PUSH

错-继续循环

}

完毕.

各位大神 Java课程设计急需1500行以上代码 最好是数独 但是管理系统物流系统这类的的也可以 谢谢啦

import java.awt.*; 

import java.awt.event.*; 

import javax.swing.*; 

public class Calculator extends JFrame { 

private Container container; 

private GridBagLayout layout; 

private GridBagConstraints constraints; 

private JTextField displayField;

private String lastCommand;

private double result;

private boolean start;

public Calculator() { 

super("Calculator"); 

container=getContentPane(); 

layout=new GridBagLayout(); 

container.setLayout(layout); 

constraints=new GridBagConstraints(); 

start=true; 

result=0; 

lastCommand = "="; 

displayField=new JTextField(20); 

displayField.setHorizontalAlignment(JTextField.RIGHT); 

constraints.gridx=0; 

constraints.gridy=0; 

constraints.gridwidth=4; 

constraints.gridheight=1; 

constraints.fill=GridBagConstraints.BOTH; 

constraints.weightx=100; 

constraints.weighty=100; 

layout.setConstraints(displayField,constraints); 

container.add(displayField); 

ActionListener insert = new InsertAction(); 

ActionListener command = new CommandAction(); 

addButton("Backspace",0,1,2,1,insert); 

addButton("CE",2,1,1,1,insert); 

addButton("C",3,1,1,1,insert); 

addButton("7",0,2,1,1,insert); 

addButton("8",1,2,1,1,insert); 

addButton("9",2,2,1,1,insert); 

addButton("/",3,2,1,1,command); 

addButton("4",0,3,1,1,insert); 

addButton("5",1,3,1,1,insert); 

addButton("6",2,3,1,1,insert); 

addButton("*",3,3,1,1,command); 

addButton("1",0,4,1,1,insert); 

addButton("2",1,4,1,1,insert); 

addButton("3",2,4,1,1,insert); 

addButton("-",3,4,1,1,command); 

addButton("0",0,5,1,1,insert); 

addButton("+/-",1,5,1,1,insert);

addButton(".",2,5,1,1,insert); 

addButton("+",3,5,1,1,command); 

addButton("=",0,6,4,1,command); 

setSize(300,300); 

setVisible(true); 

private void addButton(String label,int row,int column,int with,int height,ActionListener listener) { 

JButton button=new JButton(label); 

constraints.gridx=row; 

constraints.gridy=column; 

constraints.gridwidth=with; 

constraints.gridheight=height; 

constraints.fill=GridBagConstraints.BOTH; 

button.addActionListener(listener); 

layout.setConstraints(button,constraints); 

container.add(button); 

private class InsertAction implements ActionListener { 

public void actionPerformed(ActionEvent event) { 

String input=event.getActionCommand(); 

if (start) { 

displayField.setText(""); 

start=false; 

if(input.equals("+/-")) 

displayField.setText(displayField.getText()+"-"); 

if(!input.equals("+/-")) { 

if(input.equals("Backspace")) { 

String str=displayField.getText(); 

if(str.length()0) 

displayField.setText(str.substring(0,str.length()-1)); 

}else if(input.equals("CE")||input.equals("C")) { 

displayField.setText("0"); 

start=true; 

}else 

displayField.setText(displayField.getText()+input); 

private class CommandAction implements ActionListener { 

public void actionPerformed(ActionEvent evt) { 

String command=evt.getActionCommand(); 

if(start) { 

lastCommand=command; 

}else { 

calculate(Double.parseDouble(displayField.getText())); 

lastCommand=command; 

start=true; 

public void calculate(double x) { 

if (lastCommand.equals("+")) result+= x; 

else if (lastCommand.equals("-")) result-=x; 

else if (lastCommand.equals("*")) result*=x; 

else if (lastCommand.equals("/")) result/=x; 

else if (lastCommand.equals("=")) result=x; 

displayField.setText(""+ result); 

public static void main(String []args) { 

Calculator calculator=new Calculator(); 

calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

}

c++或java 写一个解3阶数独的程序

123456789101112131415161718192021public static Geocache[] createGeocaches(int a) { if(a = 0) return new Geocache[0]; Random rand = new Random(); Geocache[] result = new Geocache[a]; for(int i = 0; i a; i++) { //因为题目没有描述,这里假设x, y是随机整数,Geocache有a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dhrjIWn1D4n19hmWDzm1R0IAYqnWm3PW64rj0d0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4rjR4rHbLPWR1nH63P16L" target="_blank" class="baidu-highlight"构造函数/a(int, int) int x = rand.nextInt(); int y = rand.nextInt(); result[i] = new Geocache(x, y); } return result; }

java 编写16*16数独 但是怎么让数独里的数字变成颜色 就是本来里面填充的是数字 现在变成16种不同颜色.

算法和原来一样吧,只是每一个数字都代表一个颜色,先把数字填好,然后在根据数字把界面中的方格变成颜色,比如1对应红色,2对应黄色,3对应绿色等等

java数独游戏代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java数独游戏代码设计思路、java数独游戏代码的信息别忘了在本站进行查找喔。

发布于 2023-03-31 00:03:37
收藏
分享
海报
43
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了