Displaying Source Code(s)
|
|
Magic Number Game - A Program in C
--------------------------------------------------------------------------------
Description : This program "MAGICNUM.C" has been made for fun
and entertainment purpose only. This program asks the user to
think any number between 1-55. Then six different lists of
numbers are displayed and simultaneously the user is asked to
answer whether the number has appeared in the list or not. If
the
user has answered honestly/correctly the number been thought is
displayed.
This program and its concept has been prepared and developed
completely by myself. This program utilizes bit of principles
Boolean mathematics as
well as C. Since I wish that other people could make use of this
program, I decided to send it to net. As I couldn't find a
better site than VyomWorld.com, I am sending this program to it.
Provided that the lists are correctly answered the result will
be correct.In case of any ambiguity please check again.
/* ----------------------------------
Program to find the number which has been thought by a person.
You have to think a number between 1-55 and tell whether the
number has
appeared in following six lists in y/n. Then this program tells
the
number which has been thought.
In case you get a false result that means that either number
doesn't
lie between 1-55 or some mistakes have been committed in
answering y/n.
So Please check again.
Written & Devloped By : Achin Saxena
Email : achin_saxena@rediffmail.com OR
achin_saxena@indiatimes.com
STD. : BE (II Year) (Electronics & Comm. Engg.)
Jodhpur Engg. College & Research Centre
Jodhpur (Rajasthan), India
In case of any trouble shoot ups or comments about this program
please
feel free to contact me on e-mail
------------------------------ */
#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<BR>, 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,"By :-");
settextstyle(7,0,6);
setcolor(14);
outtextxy(320,350,"ACHIN SAXENA");
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[i]);
}
}
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[i] * 8 ) ;
delay ( 30 ) ;
}
nosound();
}
|
|
|