Shuffle
Shuffle
h>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<alloc.h>
#include<process.h>
void *buf;
int size,count=0,px,py,rnd[4][4],correct=0;
int callmouse()
{ in.x.ax=1;
int86(51,&in,&out);
return 1;
{ in.x.ax=3;
int86(51,&in,&out);
click=out.x.bx;
xpos=out.x.cx;
ypos=out.x.dx;
return ;
int mousehide()
in.x.ax=2;
int86(51,&in,&out);
return 1;
void done(void)
int i,j;
mousehide();
j=0;
int n;
for(i=1;i<=15;i++)
n=random(7);
sound(octave[n]*4);
delay(300);
setfillstyle(1,2);
bar(42+j,425,68+j,455);
setfillstyle(1,0);
bar(68+j,425,72+j,455);
j=j+29;
}
nosound();
delay(1000);
for(j=0;j<382;j+=2)
for(i=0;i<575;i+=2)
putpixel(26+i,25+j,4);
putpixel(26+i,460-j,4);
putpixel(25+j*3/4,28+i*3/4,2);
putpixel(595-j*3/4,458-i*3/4,2);
delay(0);
delay(1000);
settextstyle(1,0,5);
setcolor(14);
outtextxy(320,300,”http://electrofriends.com”);
outtextxy(321,300,”http://electrofriends.com”);
delay(500);
getch();
exit(0);
checknum(int mat[4][4])
{
int k=0,i,j;
correct=0;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
k++;
if(k==mat[i][j])
correct++;
gotoxy(10,11);
if(correct==15)
bar(130,40,480,80);
settextstyle(1,0,4);
outtextxy(300,60,”CONGRAGULATIONS !”);
done();
else
bar(20,415,480,463);
j=0;
for(i=1;i<=correct;i++)
{
setfillstyle(1,1);
bar(42+j,425,68+j,455);
setfillstyle(1,0);
bar(68+j,425,72+j,455);
j=j+29;
return 0;
void move(int &a,int &b,int &c,int &d,int &w,int &x,int &y,int &z,int &num)
sound(600);
count++;
gotoxy(10,9);
mousehide();
size=imagesize(a,b,c,d);
free(buf);
buf=malloc(size);
getimage(a,b,c,d,buf);
bar(a,b,c,d);
putimage(w,x,buf,COPY_PUT);
w=a;
x=b;
y=c;
z=d;
if(num==1)
rnd[px][py]=rnd[px+1][py];
rnd[px+1][py]=0;
px++;
else if(num==2)
rnd[px][py]=rnd[px-1][py];
rnd[px-1][py]=0;
px–;
else if(num==3)
rnd[px][py]=rnd[px][py+1];
rnd[px][py+1]=0;
py++;
else if(num==4)
{
rnd[px][py]=rnd[px][py-1];
rnd[px][py-1]=0;
py–;
checknum(rnd);
callmouse();
delay(40);
nosound();
return ;
main()
int a1,b1,cl,a,b,c,d,w,x,y,z,key,p=0,q=0;
int g=DETECT,m,ext=0,rst=0,rx,ry,num,i,j;
initgraph(&g,&m,”c:\\TC\\bgi”);
randomize();
gotoxy(50,9);
printf(“http://electrofriends.com”);
do
correct=0;
count=0;
gotoxy(10,9);
gotoxy(10,11);
setfillstyle(SOLID_FILL,4);
setcolor(15);
for(j=200;j<360;j+=50)
for(i=200;i<365;i+=50)
rectangle(j-1,i-1,j+46,i+46);
bar(j,i,j+45,i+45);
rectangle(192,190,403,404);
settextstyle(1,0,3);
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
rnd[i][j]=0;
for(i=0;i<=15;i++)
{
do
rx=random(4);
ry=random(4);
} while(rnd[rx][ry]);
rnd[rx][ry]=i;
char ab[10];
settextjustify(CENTER_TEXT,CENTER_TEXT);
q=p=0;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(rnd[i][j]!=0)
sprintf(ab,”%d”,rnd[i][j]);
outtextxy(225+p,217+q,ab);
else
setfillstyle(1,0);
px=i;py=j;
bar(199+p,199+q,247+p,247+q);
w=199+p;
x=199+q;
y=247+p;
z=247+q;
p+=50 ;
p=0;
q+=50 ;
bar(130,40,480,80);
bar(10,425,480,455);
setfillstyle(SOLID_FILL,4);
rectangle(534,374,591,411);
bar(535,375,590,410);
outtextxy(561,390,”EXIT”);
rectangle(484,419,591,456);
bar(485,420,590,455);
outtextxy(538,433,”RESTART”);
setcolor(4);
rectangle(10,10,610,470);
rectangle(15,15,605,465);
setcolor(14);
rectangle(12,12,607,467);
settextstyle(1,0,4);
outtextxy(300,60,”SHUFFLE GAME”);
line(150,85,450,85);
j=0;
delay(1500);
int n;
for(i=1;i<=15;i++)
n=random(7);
sound(octave[n]*4);
delay(300);
setfillstyle(1,2);
bar(42+j,425,68+j,455);
setfillstyle(1,0);
bar(68+j,425,72+j,455);
j=j+29;
nosound();
setfillstyle(SOLID_FILL,0);
bar(30,425,480,455);
settextstyle(2,0,5);
getch();
bar(20,415,480,463);
callmouse();
do
gotoxy(10,20);
mouseposi(a1,b1,cl);
num=1;
move(w,x+50,y,z+50,w,x,y,z,num); //up
num=2;
move(w,x-50,y,z-50,w,x,y,z,num); //down
num=3;
move(w+50,x,y+50,z,w,x,y,z,num); //left
num=4;
move(w-50,x,y-50,z,w,x,y,z,num); //right
}
if(kbhit())
key=getch();
switch(key)
move(w,x+50,y,z+50,w,x,y,z,num); //up
break;
move(w,x-50,y,z-50,w,x,y,z,num); //down
break;
move(w+50,x,y+50,z,w,x,y,z,num); //left
break;
move(w-50,x,y-50,z,w,x,y,z,num); //right
break;
if((a1>535 && a1<590 && b1>375 && b1<410 && cl==1) || key==27)
done();
rst=0;
} while(rst==0);
} while(rst!=0);
closegraph();