#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
#define ROW 4//游戏行数改动数字可自行调节游戏难度
#define COL 3//游戏列数改动数字可自行调节游戏难度
int shu[ROW][COL];
//初始化游戏
void InitGame()
{
srand((unsigned)time(NULL));
int n;
int a[ROW*COL];
for(int i=0;i<ROW*COL;i )
a[i]=i;
//for(int i=0;i<ROW*COL;i )
//printf("%-3d",a[i]);
// printf("\n");
// printf("n");
int k=0;
for(int i=0;i<ROW;i )
{
//printf("j");
for(int j=0;j<COL;j )
{
//printf("h");
n=rand()%(ROW*COL-k);
//printf("%-3d",n);
shu[i][j]=a[n];
for(;n<ROW*COL-k;n )
{
a[n]=a[n 1];
}
k ;
}
}
}
//控制游戏
void ControlGame()
{
int i,j;
for(int l=0;l<ROW;l )
{
for(int k=0;k<COL;k )
{
if(shu[l][k]==0)
{
i=l;j=k;
}
}
}
int a;
// printf("%d %d\n",i,j);
a=getch();
// printf("%d\n",a);
switch(a)
{
case 50://2
if(i!=ROW-1)
{
shu[i][j]=shu[i 1][j];
shu[i 1][j]=0;
}break;
case 56://8
if(i!=0)
{
shu[i][j]=shu[i-1][j];
shu[i-1][j]=0;
}break;
case 52://4
if(j!=COL-1)
{
shu[i][j]=shu[i][j 1];
shu[i][j 1]=0;
}break;
case 54://6
if(j!=0)
{
shu[i][j]=shu[i][j-1];
shu[i][j-1]=0;
}break;
}
}
//显示游戏
void ShowGame()
{
clrscr();
for(int i=0;i<ROW;i )
{
for(int j=0;j<COL;j )
{
printf("\E[1;44;32;5m%-5d\E[0m",shu[i][j]);
}
printf("\n");
for(int i=0;i<COL*5;i )
{
printf("\E[44m \E[0m");
}
printf("\n");
}
}
int VictoryGame()
{
int k=1;
int b=0;
for(int i=0;i<ROW;i )
{
for(int j=0;j<COL;j )
{
// printf("%d/%d/%d ",i,j,k);
if(shu[i][j]==k)
b ;
k ;
}
// printf("\n");
}
// printf("%d\n",shu[0][0]);
return b;
}
main()
{
int j;
InitGame();
while(1)
{
ShowGame();
ControlGame();
j=VictoryGame();
// printf("%d\n",j);
if(j==ROW*COL-1)
break;
}
printf("\nVictoryGame\n按任意键结束游戏");
getchar();
return 0;
}
,
















