共有回帖数 0 个
-

#include stdio.h
#include windows.h
#include time.h
#define N 3
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
typedef struct {
int a[3][3];
int x;
int y;
}node;
void paint(node *p)
{
int row,col;
printf("0相当于空位,移动数字至这个空位,将数字排列成n1 2 3n4 5 6n7 8 0 就赢了!ttt作者:bcoder n");
printf("┌");
for (col = 0; col N-1; col++)//输出一行
printf("—┬");
printf("—┐n");
for(row=0;rowN;row++)
{
printf("│");//输出行号
for(col=0;colN;col++)
{
printf("%2d│",p-a[row][col]);
}
printf("n");
if (row N - 1)
{
printf("├");//输出交叉线
for (col = 0; col N - 1; col++)//输出一行
printf("—┼");
printf("—┤n");
}
}
printf("└");
for (col = 0; col N - 1; col++)//最后一行的横线
printf("—┴");
printf("—┘n");
}
void find_xy(node *p){
int i,j;
for(i=0;iN;i++)
for(j=0;jN;j++)
if(p-a[j]==0)
{
p-x=i;
p-y=j;
}
}
void xia(node *p)
{
int t;
find_xy(p);
if(p-x-1=0)
{
t=p-a[p-x][p-y];
p-a[p-x][p-y]=p-a[p-x-1][p-y];
p-a[p-x-1][p-y]=t;
}
else
;
}
void shang(node *p)
{
int t;
find_xy(p);
if(p-x+1N)
{
t=p-a[p-x][p-y];
p-a[p-x][p-y]=p-a[p-x+1][p-y];
p-a[p-x+1][p-y]=t;
}
else
;
}
void you(node *p)
{
int t;
find_xy(p);
if((p-y)-1=0)
{
t=p-a[p-x][p-y];
p-a[p-x][p-y]=p-a[p-x][p-y-1];
p-a[p-x][p-y-1]=t;
}
else
;
}
void zuo(node *p)
{
int t;
find_xy(p);
if(p-y+1N)
{
t=p-a[p-x][p-y];
p-a[p-x][p-y]=p-a[p-x][p-y+1];
p-a[p-x][p-y+1]=t;
}
else
;
}
void vin(node *p)
{
int i;
for(i=0;iN*N-1;)
{
if(*(*(p-a)+i)==i+1)
i++;
else
break;
if(i==N*N-1)
printf("you win !");
}
}
void srand_num(node *p)
{
int i,index,b[N*N];
for(i=0;iN*N;i++)
b=i;
srand((unsigned)time(0));
for(i=0;iN*N;)
{
index=rand()%9; //生成0~8的不重复随机数
if(b[index]!=-1)
{
*(*(p-a)+i)=b[index];
b[index]=-1;
++i;
}
}
}
void play(node *p)
{
int key;
while(1)
{
vin(p);
key=getch();
switch(key){
case UP: shang(p); system("cls"); paint(p); break;
case DOWN: xia(p); system("cls"); paint(p); break;
case LEFT: zuo(p); system("cls"); paint(p); break;
case RIGHT: you(p); system("cls"); paint(p); break;
default: ; break;
}
}
}
void main()
{
node p;
srand_num(&p);
paint(&p);
printf("n");
play(&p);
}
楼主 2015-06-02 20:17 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知