c语言编写九宫格,关于九宫格的算法
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
下面是正宗的九宮格(81個數字)但是仔細看會發現有錯誤
高手看到的話就改改?在下謝謝了
#include?"stdio.h"
#include?"stdlib.h"
#include?"conio.h"
createWindow(int?left,int?top,int?wide,int?high,int?textColor,int?backGrdColor)
{
int?i,j;
textcolor(textColor);
textbackground(backGrdColor);
for(i=1;i<=high;i++)
{
for(j=1;j<=wide;j++)
{
if(i==1&&j==1)?putch(201);
if(i==1&&j==wide)?putch(187);
if(i==wide&&j==1)?putch(200);
if(i==wide&&j==wide)?putch(188);
if(i%6==1&&j%2!=1)?putch(205);
if(j%6==1&&i%2!=1)?putch(186);
if(i==1&&(j==7||j==13))?putch(203);
if(i==wide&&(j==7||j==13))?putch(202);
if(j==1&&(i==7||i==13))?putch(204);
if(j==wide&&(i==7||i==13))?putch(185);
if((i==7||i==13)&&(j==7||j==13))?putch(206);
if(i==1&&j%6!=1&&j%2==1)?putch(209);
if(i==wide&&j%6!=1&&j%2==1)?putch(207);
if(j==1&&i%6!=1&&i%2==1)?putch(199);
if(j==wide&&i%6!=1&&i%2==1)?putch(182);
if(i%2!=1&&j%6!=1&&j%2==1)?putch(179);
if(j%2!=1&&i%6!=1&&i%2==1)?putch(196);
if((i==7||i==13)&&j%6!=1&&j%2==1)?putch(216);
if((j==7||j==13)&&i%6!=1&&i%2==1)?putch(215);
if(i%6!=1&&j%6!=1&&i%2==1&&j%2==1)?putch(197);
if(i%2!=1&&j%2!=1)?putch(32);
}
}
window(left+1,top+1,left+wide,top+high-1);
}
setdata(char?*SDK,char?*t)
{
int?i,j,w,flag=9;
char?r,temp,data[9]={'1','2','3','4','5','6','7','8','9'};
randomize();
for(i=0;i<=7;i++)
{
if(*(t+i)!=NULL)
{
flag--;
for(j=0;j<=8;j++)
{
if(data[j]==*(t+i))
{
temp=data[j];
data[j]=data[flag];
data[flag]=temp;
break;
}
}
}
else?break;
}
*SDK=(data[random(flag)]);
}
main()
{
int?p,u,i,j,g,k,w;
char?temp,SuDoKu[9][9]={NULL},hang[9],lie[9],xiao[9],allelement[27];
clrscr();
window(1,1,19,20);
clrscr();
createWindow(1,1,19,19,WHITE,BLACK);
window(1,1,19,20);
for(p=0;p<=8;p++)
{
for(u=0;u<=8;u++)
{
for(i=0;i<=8;i++)
{
hang[i]=SuDoKu[p][i];
lie[i]=SuDoKu[i][u];
}
if(p>=0&&p<=2)
{
if(u>=0&&u<=2)?for(j=0;j<=2;j++)?for(g=0;g<=2;g++)
xiao[j*3+g]=SuDoKu[j][g];
if(u>=3&&u<=5)?for(j=0;j<=2;j++)?for(g=3;g<=5;g++)
xiao[j*3+g-3]=SuDoKu[j][g];
if(u>=6&&u<=8)?for(j=0;j<=2;j++)?for(g=6;g<=8;g++)
xiao[j*3+g-6]=SuDoKu[j][g];
}
if(p>=3&&p<=5)
{
if(u>=0&&u<=2)?for(j=3;j<=5;j++)?for(g=0;g<=2;g++)
xiao[j*3+g-9]=SuDoKu[j][g];
if(u>=3&&u<=5)?for(j=3;j<=5;j++)?for(g=3;g<=5;g++)
xiao[j*3+g-12]=SuDoKu[j][g];
if(u>=6&&u<=8)?for(j=3;j<=5;j++)?for(g=6;g<=8;g++)
xiao[j*3+g-15]=SuDoKu[j][g];
}
if(p>=6&&p<=8)
{
if(u>=0&&u<=2)?for(j=6;j<=8;j++)?for(g=0;g<=2;g++)
xiao[j*3+g-18]=SuDoKu[j][g];
if(u>=3&&u<=5)?for(j=6;j<=8;j++)?for(g=3;g<=5;g++)
xiao[j*3+g-21]=SuDoKu[j][g];
if(u>=6&&u<=8)?for(j=6;j<=8;j++)?for(g=6;g<=8;g++)
xiao[j*3+g-24]=SuDoKu[j][g];
}
for(w=0;w<=26;w++)
{
if(w<=8)?allelement[w]=hang[w];
if(w>=9&&w<=17)?allelement[w]=lie[w-9];
if(w>=18)?allelement[w]=xiao[w-18];
}
for(w=0;w<=26;w++)
{
if(allelement[w]!=NULL)
{
for(k=0;k<=w-1;k++)
{
if(allelement[w]==allelement[k])?allelement[w]=NULL;
}
}
}
for(w=26;w>=0;w--)
{
for(k=0;k<=w-1;k++)
{
if(allelement[k]==NULL&&allelement[k+1]!=NULL)
{
temp=allelement[k];
allelement[k]=allelement[k+1];
allelement[k+1]=temp;
}
}
}
setdata(&SuDoKu[p][u],allelement);
}
}
for(p=0;p<=8;p++)
{
for(u=0;u<=8;u++)
{
gotoxy(2*(u+1),2*(p+1));
cprintf("%c",SuDoKu[p][u]);
}
}
}
注意程序通過調試?但是有BUG?高手來挑戰啊
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的c语言编写九宫格,关于九宫格的算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存频率选错了?主板不支持?怎么办?快来
- 下一篇: 内存频率选购秘籍:CPU支持2133内存