Home > C++ > C++ Project on Shuffle Game

C++ Project on Shuffle Game

Download Project
Share Facebook Twitter Orkut SMS

Shuffle Game

#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, "c:\\tc\\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&lt;80; i++)
   printf("\xcd");
   printf("\t\t\t\tX=exit game\n");
   for(i=0; i&lt;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&lt;17; y+=4)
 for(x=33; x&lt;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&lt;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,"iCBSE.com");
   outtextxy(300,260,"Class: XII-A");
   outtextxy(300,300,"MDPS");
   delay(2500);
}
int check(int key)
{
   int i, valid=false;
   if(level==1)
   for(i=0; i&lt;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;
}

  1. No comments yet.
  1. No trackbacks yet.