算法和原來一樣吧,只是每一個數(shù)字都代表一個顏色,先把數(shù)字填好,然后在根據(jù)數(shù)字把界面中的方格變成顏色,比如1對應(yīng)紅色,2對應(yīng)黃色,3對應(yīng)綠色等等
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比白朗網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式白朗網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋白朗地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
JAVA不熟,不過算法都差不多。
等會給你個C/C++的。
我用C++做出來了.
基本思路說下:
先定義類
class JiuGong
{
public:
int table[9][9];//這個是九宮里的數(shù)學(xué) 不知道的用0代替
bool mark[9][9];//這個表示九宮狀態(tài),true表示已知的,可以不計算的
int x;
int y;//x,y表示當(dāng)前正在試驗的點
JiuGong *pre;//這是后面堆棧用的
bool check();//這函數(shù)進行九宮檢查,包括行/列/小九宮的查錯
bool finish();//這函數(shù)檢查是否已經(jīng)完成
bool find();//這函數(shù)用來找到下一個未知點(試驗點)位置
}
再定義一個類 這是個堆棧
class JiuGongStack()
{
public:
JiuGong *top;
bool push(JiuGong *p);//壓
bool pop(JiuGong *p);//彈
}
推算過程:
先聲明一個JiuGong結(jié)構(gòu),導(dǎo)入初始值.
用成員函數(shù)find()找到第一個未知點.
以下循環(huán):
{
在試驗點數(shù)字加1
用成員函數(shù)finish()檢查是否結(jié)束
Y- 成功 返回
N- 向下
檢查數(shù)字9
Y-POP -POP失敗 -題目錯誤 返回
N-向下
用成員函數(shù)check()查錯
無錯-PUSH
錯-繼續(xù)循環(huán)
}
完畢.
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++) { //因為題目沒有描述,這里假設(shè)x, y是隨機整數(shù),Geocache有a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dhrjIWn1D4n19hmWDzm1R0IAYqnWm3PW64rj0d0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4rjR4rHbLPWR1nH63P16L" target="_blank" class="baidu-highlight"構(gòu)造函數(shù)/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++)?{
//因為題目沒有描述,這里假設(shè)x,?y是隨機整數(shù),Geocache有構(gòu)造函數(shù)(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("請輸入個數(shù):");
int timu = saomiaoyi.nextInt();
int[][] da = new int[timu][timu];//定義數(shù)組時未使用數(shù)組長度,隨機數(shù)3導(dǎo)致數(shù)組越界
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文件名 不要用中文,用英文,每個單詞首字母大寫