算法和原来一样吧,只是每一个数字都代表一个颜色,先把数字填好,然后在根据数字把界面中的方格变成颜色,比如1对应红色,2对应黄色,3对应绿色等等
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比白朗网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式白朗网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖白朗地区。费用合理售后完善,十余年实体公司更值得信赖。
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
错-继续循环
}
完毕.
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; }
public 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有构造函数(int, int)
int x = rand.nextInt();
int y = rand.nextInt();
result[i] = new Geocache(x, y);
}
return result;
}
import java.util.*;
public class HelpTest {
public static void main(String[] args) {
Random suijishu = new Random();
Scanner saomiaoyi = new Scanner(System.in);
System.out.println("请输入个数:");
int timu = saomiaoyi.nextInt();
int[][] da = new int[timu][timu];//定义数组时未使用数组长度,随机数3导致数组越界
timu = da.length;
for (int a = 0; a timu; a++) {
for (int i = 0; i timu; i++) {
da[a][i] = suijishu.nextInt(timu) + 1;
}
}
for (int b = 0; b timu; b++) {
for (int c = 0; c timu; c++) {
System.out.println(da[b][c]);
}
}
}
}
这个是更改过的你对比对比,然后class文件名 不要用中文,用英文,每个单词首字母大写