數獨遊戲九宮格

王巨集財發表於2015-09-21

初步定義:使用資料結構的方式實現九宮格數獨遊戲

 

#include"stdio.h" //標準輸入輸出標頭檔案
#include"conio.h" //包含getch()的標頭檔案
#include"stdlib.h" //包含rand()的標頭檔案
#include"assert.h" //包含assert()的標頭檔案
#include"time.h" //包含srand()的標頭檔案

//五個全域性變數陣列
int a[10][10];//用來接收輸入資料的陣列
int sd[82];//處理題目以及儲存最終結果
int fix[82];//記錄哪些位置是確定的,確定為1,否則為0
int possible[82][10];//記錄所有未確定數字的可能性
int stack[82];//用來放置填入的數的棧
int t;

void make_problem()//出題函式
{
system("cls");//初始化
clssd();
random();//填9個隨機值
calculate();//算出答案
hide();//遮罩,將答案中一些數值遮住
printf("\t\t\t注意:題目中0代表待填資料\n\n\t\t 按空格鍵輸出答案,其他鍵退出程式\n");

int f;
do
{
f=getch()-32;
if(!f)
printAll();
else break;
}while(f);

}

void quit()
{

int i;
for(i=0;i<100;i++)
{
printf("%d\n",i);
if (i>2||i<1)
{
exit(1);
}
}
}

void main()//主函式
{
srand((unsigned)time(0));//設定時間種子為0
system("cls");//清屏
clssd();
printf("\n\t數獨遊戲\n\n\t1.你出題,電腦來解\n\n\t2.電腦出題,你來解\n\n\t3.退出遊戲");
int i;

do
{
i=getch()-48;
switch(i)
{
case 1:solve_problem();
break;
case 2:make_problem();
break;
case 3:quit();
break;
}
}while(i>2||i<1);

}

相關文章