Write a Program to make puzzle game.

 

Write a Program to make puzzle game.


  1. #include<iostream.h>  
  2. #include<dos.h>  
  3. #include<conio.h>  
  4.  #include<graphics.h>  
  5. #include<stdio.h>  
  6.   
  7. int a[5][5];  
  8. int t[16]={0,4,11,12,7,1,15,5,13,6,10,3,2,14,8,9};  
  9. int test[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};  
  10.   
  11. struct pos  
  12.      {  
  13.        int h,v;  
  14.      }  
  15.     p[4][4];  
  16.  int row=4,col=4;  
  17.   
  18. void game(int); //MOVEMENT  
  19. void rec();   //DRAWING RECTANGLE  
  20. void pri();   //PRINTING NUMBERS INITIALLY  
  21. int getkey();   // TO TRACE KEY PRESSED  
  22. inline void space()   
  23.    {  
  24.          cout<<"";   
  25.    }  
  26. inline void print(int r,int c)   
  27.    {   
  28.           cout<<a[r][c];   
  29.    }  
  30. void init();   //TO STORE CO-ORDINATES  
  31. int stop();     // STOPING CRITERION  
  32. void gopr(int,int);   //TO PRINT NUMBER IN GAME  
  33.   
  34.  void main()  
  35. {  
  36.      int gm=DETECT,gd=DETECT;  
  37.      initgraph(&gm,&gd,"c:\\turboc3\\bgi");  
  38.   
  39.       int d,cr=1;  
  40.       init();  
  41.       rec();  
  42.       print();  
  43.   
  44.       while(cr!=16)  
  45.     {  
  46.           d=getkey();  
  47.        game(d);  
  48.       cr=stop();  
  49.   }  
  50.   
  51.   settextstyle(10,0,1);  
  52.   outtextxy(400,300,"You are winner!");  
  53.   getch();  
  54.   
  55. }  
  56. void rec()  
  57. {  
  58.         setcolor(5);  
  59.   
  60.         for(int i=0;i<200;i+=50)  
  61.      {  
  62.         for(int j=0;j<240;j+=60)  
  63.         rectangle(j+100,i+100,j+50,i+60);  
  64.      }  
  65.   
  66.   }  
  67.   
  68.    void pri()  
  69.   {  
  70.          int k=1;  
  71.          for(int x=0,i=6;x<4;x++,i+=3)  
  72.     {  
  73.          for(int y=0,j=10;y<4&&k<16;y++,j+=7,k++)  
  74.         {  
  75.   
  76.          gotoxy(p[x][y].h,p[x][y].v);  
  77.          cout<<a[x][y];  
  78.         }  
  79.     }  
  80.   
  81.   }  
  82.   
  83.       int getkey()  
  84.   {  
  85.       union REGS i,o;  
  86.       while(!kbhit());  
  87.        i.h.ah=0;  
  88.       int86(22,&i,&o);  
  89.       return(o.h.ah);  
  90.   }   
  91.   
  92.      void init()  
  93.  {  
  94.             int k=1;  
  95.             for(int x=0,i=6;x<4;x++,i+=3)  
  96.       {  
  97.             for(int y=0,j=10;y<4;y++,j+=7)  
  98.          {  
  99.              p[x][y].h=j;  
  100.              p[x][y].v=i;  
  101.              a[x][y]=t[k++];  
  102.           }  
  103.       }  
  104.   
  105.    }  
  106.   
  107.      void game(int s)  
  108.   {  
  109.        int r=row-1;  
  110.        int c=col-1;  
  111.   
  112.         if(s==77 &&c!=0)  //right  
  113.       {  
  114.         col--;  
  115.   
  116.          a[r][c]=a[r][c-1];  
  117.                gopr(r,c-1);  
  118.                space();  
  119.                gopr(r,c);  
  120.                print(r,c-1);  
  121.               }  
  122.              if(s==80 && r!=0)   //down  
  123.       {  
  124.          row--;  
  125.                a[r][c]=a[r-1][c];  
  126.                gopr(r-1,c);  
  127.                space();  
  128.                gopr(r,c);  
  129.                print(r-1,c);  
  130.             }  
  131.   
  132.           if(s==75 && c!=3)     //left  
  133.      {  
  134.           a[r][c]=a[r][c+1];  
  135.         col++;  
  136.         gopr(r,c+1);  
  137.               space();  
  138.               gopr(r,c);  
  139.                 print(r,c+1);  
  140.   
  141.      }  
  142.   
  143.         if(s==72 &&r!=3)     //up  
  144.      {  
  145.   
  146.         a[r][c]=a[r+1][c];  
  147.                row++;  
  148.                gopr(r+1,c);  
  149.                space();  
  150.                gopr(r,c);  
  151.                print(r+1,c);  
  152.   
  153.            }  
  154.  }  
  155.   
  156.     void gopr(int x, int y)  
  157.        {  
  158.      gotoxy(p[x][y].h,p[x][y].v);  
  159.        }  
  160.   
  161.   
  162.            int stop()  
  163.     {  
  164.           int k=0,d=1;  
  165.           for(int x=0;x<4;x++)  
  166.       {  
  167.           for(int y=0;y<4;y++)  
  168.          {  
  169.      if(a[x][y]==test[k])  
  170.        d++;  
  171.              k++;  
  172.           }  
  173.       }  
  174.        return d;  
  175.    }  

Output

Computer Graphics Programs
Computer Graphics Programs

Post a Comment

Previous Post Next Post