Sie sind auf Seite 1von 10

#include<stdio.

h>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<alloc.h>
#include<process.h>
union REGS in,out;
void *buf;
int size,count=0,px,py,rnd[4][4],correct=0;
float octave [7]={130.81,146.83,164.81,174.61,196,220,246.94};
int callmouse()
{
in.x.ax=1;
int86(51,&in,&out);
return 1;
}
void mouseposi(int &xpos,int &ypos,int &click)
{ 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);
printf( NUMBERS ARE IN CORRECT POSITION IS ..: %d
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;
}

,correct);

void move(int &a,int &b,int &c,int &d,int &w,int &x,int &y,int &z,int &num)
{
if(a>192 && b>190 && c<403 && d<404)
{
sound(600);
count++;
gotoxy(10,9);
printf( NUMBER OF MOVES..: %d
,count);
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);
printf( NUMBER OF MOVES..: %d

,count);

gotoxy(10,11);
printf( NUMBERS ARE IN CORRECT POSITION IS ..: %d

,correct);

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);
outtextxy(250,425, YOU CAN USE ARROW BUTTONS OR MOUSE TO MOVE BLOCKS. );
outtextxy(250,450,
PRESS ANY KEY TO START .. );
getch();
bar(20,415,480,463);
callmouse();
do
{
gotoxy(10,20);
mouseposi(a1,b1,cl);
if(a1>w && a1<y && b1>x+50 && b1<z+50
{
num=1;
move(w,x+50,y,z+50,w,x,y,z,num);
}
if(a1>w && a1<y && b1>x-50 && b1<z-50
{
num=2;
move(w,x-50,y,z-50,w,x,y,z,num);
}
if(a1>w+50 && a1<y+50 && b1>x && b1<z
{
num=3;
move(w+50,x,y+50,z,w,x,y,z,num);
}
if(a1>w-50 && a1<y-50 && b1>x && b1<z
{
num=4;
move(w-50,x,y-50,z,w,x,y,z,num);

&& cl==1)
//up
&& cl==1)
//down
&& cl==1)
//left
&& cl==1)
//right

}
if(kbhit())
{
key=getch();
switch(key)
{
case 72: num=1;
move(w,x+50,y,z+50,w,x,y,z,num);
break;
case 80: num=2;
move(w,x-50,y,z-50,w,x,y,z,num);
break;
case 75: num=3;
move(w+50,x,y+50,z,w,x,y,z,num);
break;
case 77: num=4;
move(w-50,x,y-50,z,w,x,y,z,num);
break;
}
}

//up
//down
//left
//right

if((a1>535 && a1<590 && b1>375 && b1<410 && cl==1) || key==27)
done();
rst=0;
if(a1>485 && a1<590 && b1>420 && b1<455 && cl==1 )
rst=1;
} while(rst==0);
} while(rst!=0);
closegraph();
}
//////////////////////////////////////
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include<dos.h>
#include<graphics.h>
#define true 1
#define false 0
void disp();
void printmenu();void intro();
void levelmenu();void easy();
void initial(int x);
void draw(int x, int y, int i);
void userwin(int no);int check(int key);
int load,i,step,level,num[25],win;
void main()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "..\\bgi");
intro();
levelmenu();
clrscr();
cleardevice();
setbkcolor(RED);
easy();
}
void levelmenu()
{ level=0;

clrscr();
cleardevice();
setbkcolor(BLACK);
settextstyle(1,0,2);
setcolor(GREEN);
outtextxy(240,240,"Press 1 to start");
outtextxy(240,260,"----------------");
outtextxy(240,280,"1. Start");
outtextxy(240,300,"2. Rules");
outtextxy(240,330,"Enter a choice: ");
gotoxy(50+4,22);
scanf("%d", &level);
if(level==2)
{
outtextxy(20,40,"Read the rules :");
outtextxy(20,80,"1: Arrange the nos in ascending order");
outtextxy(20,120,"2: Press the no key to move the nos");
outtextxy(20,160,"3: X-Exit");
delay(3000);
levelmenu();
}
}
void intro()
{ int i,j;
clrscr();
cleardevice();
setbkcolor(BLACK);
gotoxy (25,12);
settextstyle(4,0,6);
for(i=0;i<=10;i++)
{
setcolor(i%16);
outtextxy(2,2,"SHUFFLE GAME");
settextstyle(1,0,7);
outtextxy(20,200,"");
delay(100);
outtextxy(180,200,"1");
delay(100);
outtextxy(220,200,"2");
delay(100);
outtextxy(260,200,"3");
delay(100);
outtextxy(180,300,"4");
delay(100);
outtextxy(220,300,"5");
delay(100);
outtextxy(260,300,"6");
delay(100);
outtextxy(180,400,"7");
delay(100);
outtextxy(220,400,"8");
settextstyle(4,0,8);
delay(100);
}
}
void printmenu()
{
int i;
gotoxy (33,1);printf("SHUFFLE GAME");
gotoxy (1,2);

for(i=0; i<80; i++)


printf("\xcd");
printf("\t\t\t\tX=exit game\n");
for(i=0; i<80; i++)
printf("\xcd");
gotoxy (35,23);printf("Moves = %d", step);
}
void easy()
{
int i, x, y,key,valid;
char press[2];
if(load==false)
initial(9);
else
load=false;
do{
start:
printmenu();
i=0;
for(y=8; y<17; y+=4)
for(x=33; x<44; x+=5)
{
draw(x,y,i);
i++;
}
userwin(8);
if(win==true)
{ cleardevice();
outtextxy(2,2,"You have won the game");
delay(2000);
disp();
delay(2000);
win=false;
return;
}
gotoxy (55,17);printf("Tips:");
gotoxy (61,18);printf("Number will move");
gotoxy (61,19);printf("when you key in!");
gotoxy (43,23);fflush(stdin);
press[0]=toupper(getche());
if(press[0]=='X')
{
disp();
exit(1);
}key=atoi(press);
if((valid=check(key))==false)
goto start;
step++;
if(step==50)
{
cleardevice();
outtextxy(20,200,"YOU HAVE SURPASSED MAXIMUM POSSIBLE MOVES");
delay(1500);
disp();
delay(2500);
exit(1);
}
for(i=0; i<9; i++)
{
if(num[i]==key)

num[i]=0;
else
if(num[i]==0)
num[i]=key;
}
}while(true);
}
void initial(int x)
{
int i,no;
step=0;
no=0%x;
if(no==1)
no+=5;
for(i=0; i<x; i++)
{
num[i]=no;
no+=2;
if(no>=x)
if(!(no%2))
no=1;
else
no=0;
}
}
void draw(int x, int y, int i)
{
gotoxy (x,y);
if(level==1)
{
printf("%c%c%c",201,205,187);
gotoxy (x,y+1);
printf("%c",186);
if(num[i]==0)
printf(" ");
else
printf("%d", num[i]);
printf("%c",186);
gotoxy (x,y+2);
printf("%c%c%c",200,205,188);
}
}
void disp()
{ cleardevice();
setbkcolor(BLACK);
settextstyle(4,0,4);
setcolor(RED);
outtextxy(200,100,"CREDITS:");
settextstyle(2,0,13);
outtextxy(300,220,"USMAN SHAHZADA");
outtextxy(300,260,"BIT-II");
outtextxy(300,300,"CIIT");
delay(2500);
}
int check(int key)
{
int i, valid=false;
if(level==1)
for(i=0; i<9; i++)
{

if(num[i]==key)
{
valid=true;
switch(i)
{
case 0: if(num[1]!=0 && num[3]!=0)valid=false;break;
case 1: if(num[0]!=0 && (num[2]!=0 && num[4]!=0))
valid=false;break;
case 2: if(num[1]!=0 && num[5]!=0)valid=false;break;
case 3: if(num[0]!=0 && (num[4]!=0 && num[6]!=0))
valid=false;break;
case 4: if((num[1]!=0 && num[3]!=0) &&
(num[5]!=0 && num[7]!=0))valid=false;break;
case 5: if(num[2]!=0 && (num[4]!=0 && num[8]!=0))
valid=false;break;
case 6: if(num[3]!=0 && num[7]!=0)valid=false;break;
case 7: if(num[4]!=0 && (num[6]!=0 && num[8]!=0))
valid=false;break;
case 8: if(num[5]!=0 && num[7]!=0)valid=false;break;
default:valid=false;break;
}
}
}
return valid;
}
void userwin(int no)
{
int i;
for(i=0; i<no; i++)
if(num[i]!=i+1)
{
win=false;
break;
}
else
win=true;
}

Das könnte Ihnen auch gefallen