#include<stdio.h> #include<dos.h> #include<conio.h> #include<process.h> void box(); void game(); void check(); void write(); void mainmenu(); void preview(); void scores();
int a[6][6]= { {0,0,0,0,0,0}, {0,14,5,11,4,0}, {0,15,6,10,12,0}, {0,9,8,3,1,0}, {0,100,2,13,7,0}, {0,0,0,0,0,0} };
int b[6][6]= { {0,0,0,0,0,0}, {0,1,2,3,4,0}, {0,8,7,6,5,0}, {0,9,10,11,12,0}, {0,100,15,14,13,0}, {0,0,0,0,0,0} };
char menu[5][25] = { " 1.Levels Preview ", " 2.Heighest Scores ", " 3.Start Game ", " 4.Exit " };
int i,j,row,col,temp,count,nol=0; union REGS ii,oo; char ch;
main() {
_setcursortype(_NOCURSOR); clrscr(); mainmenu(); }⁄*end of main*⁄
void mainmenu() { int pos=9; textcolor(11); for(i=1;i<=26;i++) { gotoxy(25+i,7); cprintf("%c ",205); gotoxy(25+i,17); cprintf("%c",205); }
for(i=1;i<=10;i++) { gotoxy(25,7+i); cprintf("%c",186); gotoxy(52,7+i); cprintf("%c",186); }
gotoxy(25,7); cprintf("%c",201); gotoxy(52,7); cprintf("%c",187);
gotoxy(25,17); cprintf("%c",200); gotoxy(52,17); cprintf("%c",188);
for(i=0;i<4;i++) { textcolor(10); gotoxy(32,9+(i*2)); cprintf("%s",menu[i]); textcolor(12); gotoxy(33,9+(i*2)); cprintf("%c",menu[i][1]); textcolor(11); gotoxy(35,9+(i*2)); cprintf("%c",menu[i][3]);
}
while(1) {
for(i=0;i<4;i++) { textbackground(0); gotoxy(27,9+(i*2)); cprintf(" "); }
gotoxy(27,pos); textcolor(9); cprintf(" \3\3\3");
while(!kbhit()); int86(22,&ii,&oo); ch = oo.h.ah;
switch(ch) {
case 72 : if(pos==9) pos = 15; else pos-=2; break;
case 80 : if(pos==15) pos=9; else pos+=2; break; case 28 : if(pos==9) preview(); else if(pos==11) scores(); else if(pos==13) clrscr(),game(); else exit(2); break; case 2 : case 38 :pos=9;break; case 3 : case 35 :pos=11;break; case 4 : case 31 :pos=13;break; case 1 :exit(3); case 5 : case 18 :pos=15;break;
}⁄⁄end of switch }⁄⁄end of while
getch(); }
void preview() { clrscr();
gotoxy(32,6);textcolor(3);cprintf("LEVEL 1"); gotoxy(32,7);textcolor(13);cprintf("========"); textcolor(6); gotoxy(28,10);cprintf("1 2 3 4"); gotoxy(28,12);cprintf("5 6 7 8"); gotoxy(28,14);cprintf("9 10 11 12"); gotoxy(28,16);cprintf("13 14 15 "); gotoxy(30,18);textcolor(15);cprintf("Press Any Key .."); getch(),clrscr();
gotoxy(32,6);textcolor(3);cprintf("LEVEL 2"); gotoxy(32,7);textcolor(13);cprintf("========"); textcolor(6); gotoxy(28,10);cprintf(" 15 14 13 "); gotoxy(28,12);cprintf(" 12 11 10 9 "); gotoxy(28,14);cprintf(" 8 7 6 5 "); gotoxy(28,16);cprintf(" 4 3 2 1 "); gotoxy(30,18);textcolor(15);cprintf("Press Any Key .."); getch(),clrscr();
gotoxy(32,6);textcolor(3);cprintf("LEVEL 3"); gotoxy(32,7);textcolor(13);cprintf("========"); textcolor(6); gotoxy(28,10);cprintf("1 5 9 13 "); gotoxy(28,12);cprintf("2 6 10 14 "); gotoxy(28,14);cprintf("3 7 11 15 "); gotoxy(28,16);cprintf("4 8 12 "); gotoxy(30,18);textcolor(15);cprintf("Press Any Key .."); getch(),clrscr();
gotoxy(32,6);textcolor(3);cprintf("LEVEL 4"); gotoxy(32,7);textcolor(13);cprintf("========"); textcolor(6); gotoxy(28,10);cprintf(" 12 8 4 "); gotoxy(28,12);cprintf(" 15 11 7 3 "); gotoxy(28,14);cprintf(" 14 10 6 2 "); gotoxy(28,16);cprintf(" 13 9 5 1 "); gotoxy(30,18);textcolor(15);cprintf("Press Any Key .."); getch(),clrscr();
gotoxy(32,6);textcolor(3);cprintf("LEVEL 5"); gotoxy(32,7);textcolor(13);cprintf("========"); textcolor(6); gotoxy(28,10);cprintf(" 1 2 3 4 "); gotoxy(28,12);cprintf(" 8 7 6 5 "); gotoxy(28,14);cprintf(" 9 10 11 12 "); gotoxy(28,16);cprintf(" 15 14 13 "); gotoxy(28,18);textcolor(2);cprintf("Press Any Key .."); getch(),clrscr(),mainmenu();
}⁄* end of Previw function *⁄
void scores() { clrscr();
gotoxy(23,9); textcolor(2); cprintf("V.MAHENDRA REDDY ---- 50,000"); gotoxy(23,12); cprintf("MAHI ---- 40,000"); gotoxy(23,15); cprintf("K.B.NAVEEN KUMAR ---- 30,000"); gotoxy(23,18); cprintf("G.SAMPATH KUMAR REDDY ---- 30,000");
gotoxy(25,21); textcolor(7); cprintf("Presss Any Key ...."); getch(),clrscr(); mainmenu(); }
void game() { clrscr(); box(); write();
textcolor(5); gotoxy(3,20); cprintf("Esc - Quit");
while(1) { ⁄* Printing Values*⁄ textcolor(12); for(i=1;i<=4;i++) for(j=1;j<=4;j++) { gotoxy(22+(j*5),10+(i*2)); if(a[i][j]==100) { printf(" "); row=i; col=j; } else cprintf("%d",a[i][j]); }
check();
⁄* Reading Key*⁄ while(!kbhit()); int86(22,&ii,&oo); ch = oo.h.ah;
switch(ch) { case 77:if(col==1) ⁄*Right*⁄ { gotoxy(55,21); textcolor(4); cprintf("Invalid Choice"); } else { gotoxy(55,20); textcolor(4); cprintf(" "); temp = a[row][col-1]; a[row][col]= temp; a[row][col-1]=100; }
break; case 75: if(col==4) ⁄*Left*⁄ { gotoxy(55,21); textcolor(4); cprintf("Invalid Choice"); } else { gotoxy(55,21); textcolor(4); cprintf(" "); temp = a[row][col+1]; a[row][col]= temp; a[row][col+1]=100; }
break; case 72: if(row==4) ⁄*Top*⁄ { gotoxy(55,21); textcolor(4); cprintf("Invalid Choice"); } else { gotoxy(55,21); textcolor(4); cprintf(" "); temp = a[row+1][col]; a[row][col]= temp; a[row+1][col]=100;
} break; case 80:if(row==1) ⁄*Bottom*⁄ { gotoxy(55,21); textcolor(4); cprintf("Invalid Choice"); } else { gotoxy(55,21); textcolor(4); cprintf(" "); temp = a[row-1][col]; a[row][col]= temp; a[row-1][col]=100; } break;
case 1 :gotoxy(22,23); textcolor(7); cprintf("Are You Sure To Quit (Y⁄N)::"); ch = getche(); if(ch=='y'||ch=='Y') clrscr(),mainmenu(); else { gotoxy(22,23),textbackground(0); cprintf(" "); }
} }⁄* End of While*⁄ }⁄* End of Game *⁄
void write() { if(nol==0) { gotoxy(32,9);textcolor(3);cprintf("Level 1"); textcolor(6); gotoxy(3,2);cprintf("1 2 3 4"); gotoxy(3,4);cprintf("5 6 7 8"); gotoxy(3,6);cprintf("9 10 11 12"); gotoxy(3,8);cprintf("13 14 15 "); }
if(nol==1) { gotoxy(32,9);textcolor(3);cprintf("Level 2"); textcolor(6); gotoxy(3,2);cprintf(" 15 14 13 "); gotoxy(3,4);cprintf(" 12 11 10 9 "); gotoxy(3,6);cprintf(" 8 7 6 5 "); gotoxy(3,8);cprintf(" 4 3 2 1 "); }
if(nol==2) { gotoxy(32,9);textcolor(3);cprintf("Level 3"); textcolor(6); gotoxy(3,2);cprintf("1 5 9 13 "); gotoxy(3,4);cprintf("2 6 10 14 "); gotoxy(3,6);cprintf("3 7 11 15 "); gotoxy(3,8);cprintf("4 8 12 "); }
if(nol==3) { gotoxy(32,9);textcolor(3);cprintf("Level 4"); textcolor(6); gotoxy(3,2);cprintf(" 12 8 4 "); gotoxy(3,4);cprintf(" 15 11 7 3 "); gotoxy(3,6);cprintf(" 14 10 6 2 "); gotoxy(3,8);cprintf(" 13 9 5 1 "); }
if(nol==4) { gotoxy(32,9);textcolor(3);cprintf("Level 5"); textcolor(6); gotoxy(3,2);cprintf(" 1 2 3 4 "); gotoxy(3,4);cprintf(" 8 7 6 5 "); gotoxy(3,6);cprintf(" 9 10 11 12 "); gotoxy(3,8);cprintf(" 15 14 13 "); }
}
void check() { int ok=0;
⁄* Checking*⁄
if (nol==0) { for(i=1,temp=1,count=0;i<=4;i++) for(j=1;j<=4;j++,temp++) if(a[i][j]==temp) count++;
if(count>=15) { gotoxy(28,22); textcolor(2+BLINK); cprintf("CONGRATULATIONS"); nol++; ok=1; getch(); } }
if(nol==1) { for(i=4,temp=1,count=0;i>=1;i--) for(j=4;j>=1;j--,temp++) if(a[i][j]==temp) count++;
if(count>=15) { gotoxy(28,22); textcolor(2+BLINK); cprintf("CONGRATULATIONS"); ok=1; nol++; getch(); } }
if(nol==2) { for(i=1,temp=1,count=0;i<=4;i++) for(j=1;j<=4;j++,temp++) if(a[j][i]==temp) count++;
if(count>=15) { gotoxy(28,22); textcolor(2+BLINK); cprintf("CONGRATULATIONS"); ok=1; nol++; getch(); } }
if(nol==3) { for(i=4,temp=1,count=0;i>=1;i--) for(j=4;j>=1;j--,temp++) if(a[j][i]==temp) count++;
if(count>=15) { gotoxy(28,22); textcolor(2+BLINK); cprintf("CONGRATULATIONS"); ok=1; nol++; getch(); } }
if(nol==4) { for(i=1,count=0;i<=4;i++) for(j=1;j<=4;j++) if(a[i][j]==b[i][j]) count++;
if(count==16) { gotoxy(28,22); textcolor(2+BLINK); cprintf("CONGRATULATIONS"); ok=1; nol++; getch(); } }
if(ok==1) {
if(nol==5) { gotoxy(20,23); textcolor(14); cprintf(" You Have Finished All The Levels "); getch(); exit(1); } else { gotoxy(20,23); textcolor(14); cprintf("You Have To Finish %d Levels Only ...",5-nol); getch(); }
gotoxy(20,23);textbackground(0); cprintf(" "); gotoxy(28,23);cprintf(" "); game(); } }⁄*end of function*⁄
void box() { int i; textcolor(10);
for(i=1;i<=20;i++) { gotoxy(25+i,11); cprintf("%c",205); gotoxy(25+i,13); cprintf("%c",205); gotoxy(25+i,15); cprintf("%c",205); gotoxy(25+i,17); cprintf("%c",205); gotoxy(25+i,19); cprintf("%c",205); }
for(i=1;i<=7;i++) { gotoxy(25,11+i); cprintf("%c",186); gotoxy(30,11+i); cprintf("%c",186); gotoxy(35,11+i); cprintf("%c",186); gotoxy(40,11+i); cprintf("%c",186); gotoxy(45,11+i); cprintf("%c",186); }
gotoxy(25,11); cprintf("%c",201); gotoxy(45,11); cprintf("%c",187);
gotoxy(25,19); cprintf("%c",200); gotoxy(45,19); cprintf("%c",188);
gotoxy(30,11); cprintf("%c",203); gotoxy(35,11); cprintf("%c",203); gotoxy(40,11); cprintf("%c",203);
gotoxy(30,19); cprintf("%c",202); gotoxy(35,19); cprintf("%c",202); gotoxy(40,19); cprintf("%c",202);
gotoxy(25,13); cprintf("%c",204); gotoxy(25,15); cprintf("%c",204); gotoxy(25,17); cprintf("%c",204);
gotoxy(45,13); cprintf("%c",185); gotoxy(45,15); cprintf("%c",185); gotoxy(45,17); cprintf("%c",185);
for(i=0;i<6;i+=2) { gotoxy(30,13+i); cprintf("%c",206); gotoxy(35,13+i); cprintf("%c",206); gotoxy(40,13+i); cprintf("%c",206); } }⁄⁄end of box
|