C语言的源代码是什么?

数字版“七巧板”游戏C源代码:

# include & lttime.h & gt

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltconio.h & gt

# include & ltwindows.h & gt

int i,j,r,k;//i,J,R用于循环,K存储随机值。

int m,n;// m和n是当前空位的下标,t标记排序是否成功。

int a[4][4];//存储一个4×4***16数的数组。

void show(无效);//输出数组表

void csh(void);//初始化接口

int?是(作废);?//判断排序是否成功。

void up(作废);?//数字上移至空白位置(空白位置下移)

void down(作废);?//数字下移

void left(无效);?//数字向左移动

void rght(无效);?//数字向右移动。

void inkey(无效);//按键操作

void gtxy(int x,int y);//控制光标移动的函数

int main(void)

{ while(1)

{ csh();

?while(1)

?{ inkey();

?show();

?if ( yes())

?{gtxy(6,12);Printf("你成功了!再来一局y/n?”);打破;}

}

?if(getch( )==?n?)破;

}

返回0;

}

void csh(void)

{?r = 0;

CONSOLE _ CURSOR _ INFO CURSOR _ INFO = { 1,0 };?//下面两行是隐藏光标的设置。

SetConsoleCursorInfo(GetStdHandle(STD _ OUTPUT _ HANDLE),& ampcursor _ info);

for(I = 0;我& lt4;I++) //按顺序给数组A赋值。

for(j = 0;j & lt4;j++)

{ if(I = = 3 & amp;& ampj = = 3)a[I][j]= 0;

不然呢?a[I][j]= 1+r++;

}?

a[3][3]= a[1][1];a[1][1]= 0;?//交换a[3][3]和a[1][1]的值。

m = 1;n = 1;

srand((无符号)time(0));?//初始化随机数生成器

for(r = 0;r & lt500;R++) //打乱数组的值。

{?k = rand()%(4);?//取0-3个随机数,分别代表上、下、左、右四个方向。

开关(k)

{案例0:{ up();?打破;}

案例1:{ down();?打破;}

案例二:{?left();?打破;}

案例三:{?rght();打破;}

}

}

printf("\n\n\t\t?数字拼图”);

printf("\n\t┌──────┬──────┬──────┬──────┐”);

printf("\n\t│?│?│?│?│");

printf("\n\t├──────┼──────┼──────┼──────┤”);

printf("\n\t│?│?│?│?│");

printf("\n\t├──────┼──────┼──────┼──────┤”);

printf("\n\t│?│?│?│?│");

printf("\n\t├──────┼──────┼──────┼──────┤”);

printf("\n\t│?│?│?│?│");

printf("\n\t└──────┴──────┴──────┴──────┘”);

show();

}

无效显示(无效)

{ for(I = 0;我& lt4;i++)

for(j = 0;j & lt4;j++)?//gtxy(7*j+9,2*i+4)是光标到指定位置输出的数字。

{gtxy(7*j+9,2 * I+4);if(a[i][j]==0)printf("?│");

else if(a[I][j]& gt;9)printf("?%d?│",a[I][j]);

else printf("?%d?│",a[I][j]);

}

}

空白油墨(空白)

{ int key

key = getch();

开关(钥匙)

{案例72:{ up();打破;?}

案例80:{ down();打破;}

案例75:{ left();打破;}

案例77: {?rght();?打破;?}

}

}

无效(无效)

{如果(m!=3) ?//移动时考虑空位“0”是否已经在边界。

{ a[m][n]= a[m+1][n];?m++;a[m][n]= 0;}

}

向下无效(无效)

{如果(m!=0)

{ a[m][n]= a[m-1][n];?m-;a[m][n]= 0;}

}

向左无效(无效)

{ if (n!=3)

{ a[m][n]= a[m][n+1];n++;a[m][n]= 0;?}

}

无效权限(无效)

{ if (n!=0)

{ a[m][n]= a[m][n-1];n-;a[m][n]= 0;}

}

整数是(无效)

{ r = 0;

for(I = 0;我& lt4;i++)

for(j = 0;j & lt4;j++)

{ if (a[i][j]!=1+r++)返回(r==16)?1:0;}

}

void gtxy(int x,int y)?//控制光标移动的函数

{ COORD coord

坐标。X = x

坐标。Y = y

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE),coord);

}