该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面是正宗的九宫格(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 高手来挑战啊