Magic Number Game - A Program in C - Gaming Source Code

Started by Kalyan, Apr 06, 2008, 09:28 PM

Previous topic - Next topic

Kalyan

Magic Number Game - A Program in C

#include <stdio.h>
#include <graphics.h>

#include <dos.h>
#include <string.h>

void InitGraphicMode();
void Welcome();
void StartGame();
void DisplayName(int );
void Clear();

void main()
{
       InitGraphicMode();
       Welcome();
       getch();
       StartGame();
       closegraph();
}
void InitGraphicMode()
{
   int gdriver = DETECT, gmode, errorcode;
   //In next line the path of bgi files  is taken
   initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
   errorcode = graphresult();
   if (errorcode != grOk)  /* an error occurred */
   {
          printf("Graphics error: %s\n", grapherrormsg(errorcode));
          printf("Press any key to halt:");
          getch();
          exit(1);             /* return with error code */
       }
}
//to print the welcome screen
void Welcome()
{
       char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x00, 0x27, 0x20, 0x70};
       int i;

       setfillpattern(pattern, BLUE);
       for(i=0;i<=320;i++)
       {
              bar(320-i,240-i*0.75,320+i,240+i*0.75);
              delay ( 1 ) ;
       }
       settextjustify(1,1);
       DisplayName(100);
       settextstyle(5,0,4);
       outtextxy(100,300,"");
       settextstyle(7,0,6);
       setcolor(14);
       outtextxy(320,350,");
       music();
       delay(3);
}
//to Start the game
void StartGame()
{
       void FirstScreen();
       char
ShowList1(),ShowList2(),ShowList3(),ShowList4(),ShowList5(),ShowList6();
       int FindNumber(long);
       long check(char);
       int number,i;
       long num=0;
       char val;
       char ch;
       char numstr[10];
       while(1)
       {
              Clear();
              music();
              FirstScreen();
              Clear();
              music();
              val=ShowList1();
              num=check(val);
              Clear();
              music();
              val=ShowList2();
              num=num*10+check(val);
              Clear();
              music();
              val=ShowList3();
              num=num*10+check(val);
              Clear();
              music();
              val=ShowList4();
              num=num*10+check(val);
              Clear();
              music();
              val=ShowList5();
              num=num*10+check(val);
              Clear();
              music();
              val=ShowList6();
              num=num*10+check(val);
              number=FindNumber(num);
              itoa(number,numstr,10);
              Clear();
              music();
              settextstyle(5,0,4);
              settextjustify(0,1);
              if (number)
              {
                     outtextxy(100,150,"So the number you thought was...");
                     setcolor(14);
                     settextstyle(4,0,15);
                     settextjustify(1,1);
                     outtextxy(320,250,numstr);
                     setcolor(15);
                     settextstyle(6,0,4);
                     outtextxy(320,350,"Can't believe it .........");
              }
              else
              {
                     setcolor(14);
                     outtextxy(100,180,"Your number is out of range ...");
                     outtextxy(200,260,"OR....");
                     outtextxy(100,340,"You did not answer properly !!! ");
              }
              settextjustify(1,1);
              settextstyle(6,0,4);
              setcolor(CYAN);
              outtextxy(320,400,"Wish to Try again (y/n) !!!!");
              ch=getch();
              if (ch=='y'||ch=='Y')
              {
                 outtextxy(510,400,"Y");
                 music();
                 getch();
              }
              else
              {
                 outtextxy(510,400,"N");
                 getch();
                 music();
                 return;
              }
       }
}

void DisplayName(int ycor)
{
       char *name[] = {"M","A","G","I","C"," ","N","U","M","B","E","R"};
       int i;
       settextjustify(1,1);
       settextstyle(4,0,7);
       for(i=0;i<12;i++)
       {
              setcolor(i+2);
              outtextxy(40+i*45,ycor, name);
       }
}
void Clear()
{
       setfillstyle(8,BLUE);
       bar(0,0,640,480);
       DisplayName(30);
}
//Displaying the first Game Screen
void FirstScreen()
{
       settextjustify(1,1);
       setcolor(2);
       settextstyle(1,0,4);
       outtextxy(320,150," Think of any number in the range ");
       setcolor(14);
       settextstyle(4,0,8);
       outtextxy(320,250,"1 - 55");
       settextstyle(5,0,3);
       setcolor(CYAN);
       outtextxy(320,350,"Press any key to continue ......");
       setcolor(15);
       settextstyle(3,0,3);
       outtextxy(320,430,"And Please... Be Honest !!!!!");
       getch();
}
//Displaying the six lists
char ShowList1()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120,"1,  3, 4, 7, 8, 11, 12");
       outtextxy(70,180,"14, 16, 17, 18, 19, 20");
       outtextxy(70,240,"24, 25, 28, 30, 31, 33");
       outtextxy(70,300,"35, 37, 40, 42, 44, 46");
       outtextxy(70,360,"47, 48, 50, 52, 54, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"Does Your number appear here ? (y/n)...");
       ch=getch();
       fflush(stdin);
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       getch();
       return(ch);
       }
char ShowList2()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120,"1, 3, 6, 8, 10, 11, 12");
       outtextxy(70,180,"15, 17, 18, 19, 22, 23");
       outtextxy(70,240,"26, 29, 31, 32, 33, 34");
       outtextxy(70,300,"36, 37, 38, 41, 44, 45");
       outtextxy(70,360,"47, 50, 51, 53, 54, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"How about here ? (y/n)...");
       ch=getch();
       fflush(stdin);
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       getch();
       return(ch);
}

char ShowList3()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120,"1,  2,  5,  6,  7,  10");
       outtextxy(70,180,"11, 13, 15, 16, 17, 19");
       outtextxy(70,240,"21, 22, 24, 26, 27, 28");
       outtextxy(70,300,"32, 35, 38, 40, 44, 46");
       outtextxy(70,360,"47, 48, 49, 53, 54, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"Now here ? (y/n)...");
       ch=getch();
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       fflush(stdin);
       getch();
       return(ch);
}
char ShowList4()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120,"1, 2, 5, 9, 13, 17, 18");
       outtextxy(70,180,"20, 22, 25, 26, 28, 30");
       outtextxy(70,240,"31, 32, 33, 35, 36, 37");
       outtextxy(70,300,"38, 39, 40, 41, 42, 43");
       outtextxy(70,360,"45, 46, 49, 51, 54, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"And here ? (y/n)...");
       ch=getch();
       fflush(stdin);
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       getch();
       return(ch);
}
char ShowList5()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120,"  4,   5,   8,   9,  10");
       outtextxy(70,180,"11, 12, 13, 14, 15, 16");
       outtextxy(70,240,"19, 21, 24, 27, 29, 30");
       outtextxy(70,300,"32, 33, 34, 37, 38, 40");
       outtextxy(70,360,"42, 45, 46, 51, 54, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"And here ? (y/n)...");
       fflush(stdin);
       ch=getch();
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       getch();
       return(ch);
}
char ShowList6()
{
       char ch;
       setcolor(14);
       settextstyle(3,0,4);
       settextjustify(0,1);
       outtextxy(70,120," 2,   3,    6,   7,  9");
       outtextxy(70,180,"12, 13, 14, 15, 17, 19");
       outtextxy(70,240,"23, 24, 25, 26, 27, 31");
       outtextxy(70,300,"34, 35, 37, 38, 41, 42");
       outtextxy(70,360,"43, 46, 47, 51, 52, 55");
       settextstyle(5,0,3);
       setcolor(2);
       outtextxy(30,420,"Finally here ? (y/n)...");
       ch=getch();
       fflush(stdin);
       if (ch=='y'||ch=='Y')
              outtextxy(500,420,"Y");
       else
              outtextxy(500,420,"N");
       getch();
       return(ch);
}
int FindNumber(long num)
{
              switch(num)
              {
                     case 111100       :  return (1);
                     case 1101       :  return (2);
                     case 110001       :  return (3);
                     case 100010       :  return (4);
                     case 1110       :  return (5);
                     case 11001       :  return (6);
                     case 101001       :  return (7);
                     case 110010       :  return (8);
                     case 111       :  return (9);
                     case 11010       :  return(10);
                     case 111010       :  return(11);
                     case 110011       :  return(12);
                     case 1111       :  return(13);
                     case 100011       :  return(14);
                     case 11011       :  return(15);
                     case 101010       :  return(16);
                     case 111101       :  return(17);
                     case 110100       :  return(18);
                     case 111011       :  return(19);
                     case 100100       :  return(20);
                     case 1010       :  return(21);
                     case 11100       :  return(22);
                     case 10001       :  return(23);
                     case 101011       :  return(24);
                     case 100101       :  return(25);
                     case 11101       :  return(26);
                     case 1011       :  return(27);
                     case 101100       :  return(28);
                     case 10010       :  return(29);
                     case 100110       :  return(30);
                     case 110101       :  return(31);
                     case 11110       :  return(32);
                     case 110110       :  return(33);
                     case 10011       :  return(34);
                     case 101101       :  return(35);
                     case 10100       :  return(36);
                     case 110111       :  return(37);
                     case 11111       :  return(38);
                     case 100       :  return(39);
                     case 101110       :  return(40);
                     case 10101       :  return(41);
                     case 100111       :  return(42);
                     case 101       :  return(43);
                     case 111000       :  return(44);
                     case 10110       :  return(45);
                     case 101111       :  return(46);
                     case 111001       :  return(47);
                     case 101000       :  return(48);
                     case 1100       :  return(49);
                     case 110000       :  return(50);
                     case 10111       :  return(51);
                     case 100001       :  return(52);
                     case 11000       :  return(53);
                     case 111110       :  return(54);
                     case 111111       :  return(55);
                     default              :  return(0);
              }
}

long check(char ch)
  {
       if (ch=='y'||ch=='Y')
              return(1);
       else
              return(0);
  }

music()
{
int i  ;
float octave[7] = { 130.81, 146.83, 164.81, 174.61, 196, 220, 246.94 } ;
for ( i = 0 ; i < 7 ; i++ )
{
sound ( octave * 8 ) ;
delay ( 30 ) ;
}
      nosound();
}

Puneeth N G

Dear Sir/Madam,


            Sir I need the out put and solution of the magic game program,
      Please Sir i need it Bec i doing Project of Magic Game.......
Please Inform who to collect it to puneethn.39@gmail.com

Sudhakar

Hi Acumen,

I don't understand, what you mean by output.

Take the above code and process it to get the output in compiler.  :yes

Puneeth N G

Sir I need rules of dis program, how it comes correct out put.......

Subi jain