//IMPLEMENTATION OF OPPOSITE GAME
//first user1 should play with numpad keys
#include<graphics.h>
#include<conio.h>
#include<process.h>
#include<iostream.h>
#include<stdio.h>
#include<dos.h>
extern short int user1=1,user2=0;
extern short int array[8][8]={{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,2,2,0,0,0},
{0,0,0,14,14,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0}};
extern short int sp_color=0; // to create generic functions
extern short int current_yellow=2,current_green=2;
extern short int color=0;
extern short int color_back=0;
extern short int write=0;
//to fill boxes during user profile execution
extern short int user1_validity_checked=0,
user2_validity_checked=1;
//signals to check user's validity by condition(which avoid
repeat calling
of big function in while loop)
extern short int gameover1=0,gameover2=0; // if both got 1
means, end the
game(consider total_poxes)
extern short int total_boxes=0; //to check whether all boxes
filled or not
extern short int print_box=0; // to exe fillbox only called bu user
profiles(to avoid printing of boxes while checking validity)
extern short int validity_enabler=0; //signal used to get
validity of user
by checking it in by entering fillbox()
//single player game variables
extern short int dir_array[8]={0,0,0,0,0,0,0,0}; //0 to 7 represent
corresponding directions
//extern short int max_dir=0; //direction number which achieved
max value
extern short int max_pixel_i=0; //this i and j is to store pixel
postion at which max_dir have to applay at final
extern short int max_pixel_j=0;
extern short int max_value=0; //maximum value of the filled
pixels among all directionl algorithms
void get_max(int i, int j);
int select_box(int ,int );
void delay();
void backbox(int ,int );
void update_array();
void initial_setup();
void sound1();
void sound2();
//TO DRAW BOX AROUND CENRAL PIXEL
void setbox(int i,int j)
{
int x,y,count=0;
for(x=i-17; x<=
(i+18) ;x++)
for(y=j-17;
y<= (j+18); y++)
{ //count++;
if(x==i-17 ||
x==i+18 || y==j-17 || y==j+18)
{
if((count++)%3==0)
putpixel(x,y,WHITE);
}
}
}
// TO DRAW YELLOW AND green BALL INSIDE THE BOX
void fillbox(int i, int j,int c)
{
int x,y,s1,s2;
validity_enabler=1;
if(print_box)
{
for(x=i-17+4;
x<= (i+18-4) ;x++)
for(y=j-17+4;
y<= (j+18-4); y++)
putpixel(x,y,c);
s1=(x-70)/35;
s2=(y-140)/35;
array[s1][s2]=c;
// printf("%d ",c );
}
}
void display_date()
{
// gotoxy(1,1);
gotoxy(10,3);
printf("
");
printf(" T H E
G A M E O P P O S I T E
");
printf(" *************************************");
gotoxy(10,28);
printf("%s
",__DATE__);
printf("
%s",__TIME__);
gotoxy(55,27);
printf("By-
");
gotoxy(55,28);
printf("Mani kanta.C.V");
gotoxy(1,1);
}
void sound1()
{
int i;
for(i=700;i<=800;i=i+25)
{
sound(i);
delay(5);
nosound();
}
}
void movement(int *i, int *j,char ch)
{ //int x=*i,y=*j;
// sound1();
switch(ch)
{case 118:
case 50: //down key
*j=*j+35;
if(*j >
(140+245))
*j=140;
break;
case 100:
case 52: //left key
*i=*i-35;
if(*i <
70)
*i=70+245;
break;
case 103:
case 54: //right key
*i=*i+35;
if(*i >
(70+245))
*i=70;
break;
case 114:
case 56: //up-key
*j=*j-35;
if(*j <
140)
*j=140+245;
break;
}
}
void whitebox(int
i,int j)
{ int x,y;
for(x=i-17+2;
x<= (i+18-2) ;x++)
for(y=j-17+2;
y<= (j+18-2); y++)
putpixel(x,y,15);
}
void backbox(int
i, int j)
{
int x,y;
for(x=i-17+2;
x<= (i+18-2) ;x++)
for(y=j-17+2;
y<= (j+18-2); y++)
{if(x==i-17+2 ||
x==i-17+3 || x==i+18-2 || x==i+18-3 || y==j-17+2 ||
y==j-17+3 || y==j+18-2 || y==j+18-3)
putpixel(x,y,0);
}
print_box=1; //eneble the printing of box
fillbox(i,j,color_back);
print_box=0; //disable the printing of box
}
void delay()
{
int x,y,z;
for(x=0;x<20000;x++)
for(y=0;y<10000;y++);
}
/*ALGORITHMS TO CHECK SURROUNDING BOXES OF BOX UNDER
CONSIDERATION, IN
ALL DIRECTIONS*/
int checkdown(int
x, int y)
{
if(y >
(140+245)) //boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkdown(x,(y+35));
//recursive calling
}
if(write)
{
dir_array[0]=dir_array[0]+1;
//one value get incremented per one
box fill
fillbox(x,y,color);
fillbox(x,y-35,
color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkup(int x,
int y)
{
if(y <
140) //boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2];; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkup(x,(y-35));
//recursive calling
}
if(write)
{
dir_array[1]=dir_array[1]+1;
//one value get incremented per one box
fill
fillbox(x,y,color);
fillbox(x,y+35,
color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkleft(int
x, int y)
{
if(x<
70) //boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkleft((x-35),y);
//recursive calling
}
if(write)
{
dir_array[2]=dir_array[2]+1;
//one value get incremented per one box
fill
fillbox(x,y,color);
fillbox((x+35)
,y, color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkright(int
x, int y)
{
if(x >
(70+245)) //boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkright((x+35),y);
//recursive calling
}
if(write)
{
dir_array[3]=dir_array[3]+1;
//one value get incremented per one
box fill
fillbox(x,y,color);
fillbox((x-35)
,y, color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkdia1(int
x, int y) //starts from clock
wise
{
if((x >
(70+245)) || ( y < (140)))
//boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color should be re-defined in
user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkdia1((x+35),(y-35));
//recursive calling
}
if(write)
{
dir_array[4]=dir_array[4]+1;
//one value get incremented per one
box fill
fillbox(x,y,color);
fillbox((x-35)
,(y+35), color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkdia2(int
x, int y)
{
if((x >
(70+245)) || ( y > (140+245)))
//boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkdia2((x+35),(y+35));
//recursive calling
}
if(write)
{
dir_array[5]=dir_array[5]+1;
//one value get incremented per one box
fill
fillbox(x,y,color);
fillbox((x-35)
,(y-35), color);
if(user1)
color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
if(user2)
color_back=GREEN;
}
return(0);
}
int checkdia3(int
x, int y)
{
if((x <70) ||
( y > (140+245))) //boundary
checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkdia3((x-35),(y+35));
//recursive calling
}
if(write)
{
dir_array[6]=dir_array[6]+1;
//one value get incremented per one
box fill
fillbox(x,y,color);
fillbox((x+35)
,(y-35), color);
if(user1)
{color_back=YELLOW; //back box
color should be re-defined(if modified
anything means)
}
if(user2)
{color_back=GREEN;
}
}
return(0);
}
int checkdia4(int
x, int y)
{
if((x <70) ||
( y < 140)) //boundary checking
{ write=0;
return(0);
}
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
int
color1=array[s1][s2]; //checking for
next blank box
if(color1==BLACK)
{
write=0;
return 0;
}
//reading next pixel,(1st time, it will be white)
if(color1==color) //color
should be re-defined in user-profile
{
//if it
contains no element in its sorroundings
return(0);
}
if(color1==sp_color)
{
write=1;
checkdia4((x-35),(y-35));
//recursive calling
}
if(write)
{
dir_array[7]=dir_array[7]+1;
//one value get incremented per one box
fill
fillbox(x,y,color);
fillbox((x+35)
,(y+35), color);
if(user1)
{
color_back=YELLOW; //back box color
should be re-defined(if
modified anything means)
//to check whether user1 striked even he is valid, by comparing
it with its previous value
}
if(user2)
{
color_back=GREEN;
}
}
return(0);
}
void check_all_dir(int x, int y, int print)
{
if(print==1) //in case of this
function called by userprofiles,
then onlly print
print_box=1;
else
print_box=0;
write=0;
update_array();
checkdown(x,(y+35));
checkup(x,(y-35));
checkleft((x-35),
y);
checkright((x+35),y);
checkdia1(x+35,
y-35);
checkdia2(x+35,
y+35);
checkdia3(x-35,
y+35);
checkdia4(x-35,
y-35);
}
void
update_array()
{
int i,j;
current_yellow=0; //reset
values
current_green=0; // no use
of previous yellow and green
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
if(array[i][j]==14) current_yellow++;
if(array[i][j]==2) current_green++;
}
total_boxes=current_yellow+current_green;
}
int
user1_validity() //should
return 1 on success
{ int i,j;
int col1,col2;
col1=color;
col2=sp_color;
color=YELLOW;
sp_color=GREEN;
write=0;
validity_enabler=0;
update_array(); //
no need, remove it later on
for(i=70;
i<=(70+245); i=i+35)
for(j=140;
j<=(140+245); j=j+35)
{
if(validity_enabler) //which
cannot reach after checking
array[7][7]
return(1); //if user1 valid to
fill box
int s1,s2;
s1=(i-70)/35;
s2=(j-140)/35;
if(array[s1][s2]==0)
check_all_dir(i,j,0);
}
if(validity_enabler)
return(1); //which is to check whether
validity_enabler got rised after checking for array[7][7]
color=col1;
sp_color=col2;
return(0);
}
int
user2_validity() //should return 1 on success
{ int i,j;
int col1,col2;
col1=color;
col2=sp_color;
color=GREEN;
sp_color=YELLOW;
write=0;
validity_enabler=0;
update_array(); // no
need, remove it later on
for(i=70;
i<=(70+245); i=i+35)
for(j=140;
j<=(140+245); j=j+35)
{
if(validity_enabler)
return(1); //if user1 valid to
fill box
int s1,s2;
s1=(i-70)/35;
s2=(j-140)/35;
if(array[s1][s2]==0)
check_all_dir(i,j,0);
}
if(validity_enabler)
return(1); //which is to check whether
validity_enabler got rised after checking for array[7][7]
color=col1;
sp_color=col2;
return(0);
}
//press esc to come
out of the following loop
int select_box(int i, int j) //cursor block
{
int x,y,t1,t2;
char ch;
int gdriver=DETECT,gmode=0;
initgraph(&gdriver, &gmode, "c:\tc\bgi");
initial_setup();
gotoxy(0,0);
gotoxy(52,13);
printf("%d %d",current_yellow,current_green);
//to display
initial score
gotoxy(0,0);
while(1)
{ x=i;
y=j;
char ch;
display_date();
color_back=getpixel(i,j);
update_array();
whitebox(i,j);
update_array();
//TO CHECK
USER 1 VALIDITY
if((!user1_validity_checked) && user1) //if user1 validity not
yet checked
{ user1_validity_checked=1;
int
color_back_retriver=color_back;
if(user1_validity())
{ user1=1;
user2=0;
gameover1=0;
gotoxy(0,0); //to
display validity below score board
gotoxy(50,15);
printf("
play1");
gotoxy(0,0);
gotoxy(64,15);
printf(" ");
gotoxy(0,0);
}
else //disable user1 and eneble
user2
{
user1=0;
user2=1;
gameover1=1;
user2_validity_checked=0;
gotoxy(0,0); //to display
validity below score board
gotoxy(50,15);
printf("
NO ");
gotoxy(0,0);
}
color_back=color_back_retriver;
}
//TO CHECK
USER2 VALIDITY
if((!user2_validity_checked) && user2)
{
int
color_back_retriver=color_back;
user2_validity_checked=1;
if(user2_validity())
{
user2=1;
user1=0;
gameover2=0;
gotoxy(0,0); //to display validity below score board
gotoxy(64,15);
printf(" play2");
gotoxy(0,0);
gotoxy(50,15);
printf(" ");
gotoxy(0,0);;
}
else
{
gameover2=1;
user2=0;
user1=1;
user1_validity_checked=0;
//to
display validity below score board
gotoxy(64,15);
printf("
NO ");
}
color_back=color_back_retriver;
}
if((gameover1==1) && (gameover2==1) || total_boxes==64 ||
current_yellow==0 || current_green==0)
{
update_array();
gotoxy(1,1);
if(
current_yellow > current_green)
printf("
**************** USER1 IS THE
WINNER*************");
else
if(current_yellow<current_green)
printf("
**************** USER2 IS THE
WINNER*************");
else
printf("
************ M A T C H IS D R
A W *************");
printf("
**************** G A M E
O V E R*************");
return(0);
}
ch=getch();
if(ch==27)
break; //ESC butten action
if(ch==13
&& user1) //if enter
key pressed by user1
{ int yellow_p, yellow_c;
color=YELLOW;
sp_color=GREEN;
write=0;
update_array(); // update previous values of array
yellow_p=current_yellow;
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
if(array[s1][s2]==0) //if
current box is empty
check_all_dir(x,y,1); //
calls 8 directional alg
update_array(); //update rescent
values of array
yellow_c=current_yellow;
if(yellow_c
!= yellow_p) //if user really strikes any box, then
only switch to yser2
{
user1=0;
user2=1;
user2_validity_checked=0;
sound1();
gotoxy(52,13);
printf("%d %d",current_yellow,current_green);
//to
display initial score
}
}
if(ch==102
&& user2) //if f key
pressed by user2
{
int green_c,
green_p;
color=GREEN;
sp_color=YELLOW;
write=0;
update_array();
green_p=current_green; //saved
green value, bfore filling new
boxes
int s1,s2;
s1=(x-70)/435;
s2=(y-140)/35;
if(array[s1][s2]==0) //if
current box is empty
check_all_dir(x,y,1);
update_array();
green_c=current_green; //new
green values
if(green_c !=
green_p)
{
sound1();
user2=0;
user1=1;
user1_validity_checked=0;
gotoxy(52,13);
printf("%d %d",current_yellow,current_green);
//to display
initial score
}
}
movement(&i,&j,ch);
//movemwnts to the curser block
backbox(x,y); //fill box with its previous
color
} //press
arrow keys of NUM_PAD
return(0);
}
void initial()
{ print_box=1;
fillbox(175,245,2);
fillbox(210,245,2);
fillbox(175,280,14);
fillbox(210,280,14);
print_box=0;
}
void putbox()
//which fixes central points of each box and call
function to draw the box
{
for(int
i=70;i<350;i=i+35)
for(int
j=140;j<420;j=j+35)
{
//
putpixel(i,j,RED); //to create a
red dot at center of each box
setbox(i,j);
}
}
void outline(int ch)
{
int x,y;
//starts from
51(70-17-2),121(140-17-2)
for(x=50;
x<=(51+284); x++)
for(y=120;
y<=(121+284); y++)
if(x==50 || x==51 || x==334 || x==335 || y==120 || y==121 ||
y==404 ||
y==405)
putpixel(x,y,ch);
}
void get_max(int i, int j)
{
int x;
int max=0;
for(x=0;x<8;x++)
max=max+dir_array[x];
if(max_value<max)
{
max_value=max;
max_pixel_i=i;
max_pixel_j=j;
}
}
void print_computer()
{
int x,y;
update_array();
x=max_pixel_i;
y=max_pixel_j;
print_box=1;
color_back=GREEN;
check_all_dir(x,y,1);
}
int single_player_game()
{
int gdriver=DETECT,gmode=0;
initgraph(&gdriver, &gmode, "c:\tc\bgi");
int i=70;
int j=140;
int x,y;
initial_setup();
gotoxy(0,0);
gotoxy(52,13);
printf("%d %d ",current_yellow,current_green); //to
display
initial score
gotoxy(0,0);
while(1)
{ x=i;
y=j;
char ch;
display_date();
color_back=getpixel(i,j);
update_array();
whitebox(i,j);
update_array();
gotoxy(0,0);
gotoxy(52,13);
//TO CHECK
USER 1 VALIDITY
if((!user1_validity_checked) && user1) //if user1 validity not
yet checked
{ user1_validity_checked=1;
int
color_back_retriver=color_back;
if(user1_validity())
{ user1=1;
user2=0;
gameover1=0;
gotoxy(1,1); //to
display validity below score board
gotoxy(50,15);
printf("
play1");
gotoxy(1,1);
gotoxy(64,15);
printf(" ");
gotoxy(1,1);
}
else //disable user1 and eneble
user2
{
user1=0;
user2=1;
gameover1=1;
user2_validity_checked=0;
gotoxy(1,1); //to
display validity below score board
gotoxy(50,15);
printf("
NO ");
gotoxy(1,1);
}
color_back=color_back_retriver;
}
ch=getch();
if(ch==27)
break; //ESC butten action
if(ch==13
&& user1) //if enter
key pressed by user1
{ int yellow_p, yellow_c;
color=YELLOW;
sp_color=GREEN;
write=0;
update_array();
// update previous values of array
yellow_p=current_yellow;
int s1,s2;
s1=(x-70)/35;
s2=(y-140)/35;
if(array[s1][s2]==0) //if
current box is empty
check_all_dir(x,y,1); //
calls 8 directional alg
update_array(); //update rescent
values of array
yellow_c=current_yellow;
if(yellow_c
!= yellow_p) //if user really strikes any box, then
only switch to yser2
{
sound1();
user1=0;
user2=1;
user2_validity_checked=0;
gotoxy(52,13);
printf("%d %d ",current_yellow,current_green);
//to display initial score
// printf("%d %d ",current_yellow,current_green);
}
}
gotoxy(0,0);
gotoxy(52,13);
//TO CHECK
USER2 VALIDITY
if((!user2_validity_checked) && user2)
{
int
color_back_retriver=color_back;
user2_validity_checked=1;
if(user2_validity())
{
user2=1;
user1=0;
gameover2=0;
//to
display validity below score board
gotoxy(64,15);
printf("computer");
gotoxy(50,15);
printf(" ");
}
else
{
gameover2=1;
user2=0;
user1=1;
user1_validity_checked=0;
//to display validity below score board
gotoxy(64,15);
printf(" NO ");
}
color_back=color_back_retriver;
}
if((gameover1==1) && (gameover2==1) || total_boxes==64 ||
current_yellow==0 || current_green==0)
{
gotoxy(1,1);
update_array();
if(
current_yellow > current_green)
printf("
**************** USER1 IS THE
WINNER*************");
else
if(current_yellow<current_green)
printf("
************ * COMPUTER IS THE
WINNER*************");
else
printf("
************ M A T C H
IS D R
A W *************");
gotoxy(1,1);
printf("
**************** G A M E
O V E
R*************");
return(0);
}
if(user2) //its the turn of computer
{
// int green_c,
green_p;
int m,n;
int
color_back_retriver=color_back;
color=GREEN;
sp_color=YELLOW;
max_value=0;
write=0;
update_array();
for(int
t=0;t<8; t++) //restting of direction values
dir_array[t]=0;
//priority part hv to b written
for(m=0;m<8;m++)
for(n=0;n<8;n++)
if(array[m][n]==0)
{ int a,b;
a=70+(m*35);
b=140+(n*35);
for(int
t=0;t<8;t++)
dir_array[t]=0;
check_all_dir(a,b,0);
get_max(a,b);
}
delay(); //let the user1 see his results
delay();
print_computer();
//if comp(user2) valid means i wil print automatically
without
// user
interaction, so not checking for pixel color upgradation of
array[][]
sound1();
color_back=color_back_retriver;
if(getpixel(i,j)==GREEN)
//if white box interacts with newly
paved green boxes means, xtract back color and proceed
color_back=GREEN;
user2=0;
user1=1;
user1_validity_checked=0;
update_array();
gotoxy(52,13);
printf("%d %d ",current_yellow,current_green); //to
display initial score
// printf("%d %d
",current_yellow,current_green);
}
movement(&i,&j,ch);
//movemwnts to the curser block
backbox(x,y); //fill box with its
previous color
//press arrow keys of NUM_PAD
} //end of while
loop
return(0);
}
void display_instr()
{
printf("This is the game already implemented in Nokia
2300 set
. you
are the user1 always and got to play using YELLOW
color.");
printf("first is user1
turn, you have to put
the white box at
appropriate place and have to press
ENTER(num pad) key to
fill the
boxes with yellow,");
printf("so that your cursor current
position should be at
empty box
and contains Green boxes in between your cursor
and another Yellow
box,
that yellow box belongs to ");
printf("upward,downward,leftside,
rightside or any diagonal direction
to your cursor.
");
printf(" Same
thing to user2 also, he got to play with Green
boxe's.
");
printf("USER1 CONTROL KEYS:
");
printf("*******************
");
printf("The directional keys in num-pad and enter key
in num-pad
");
printf("
USER2 CONTROL KEYS:
");
printf("*********************
");
printf(" D = left movement
R = up-ward movement
G = right movement
V
= down-ward movement
F = Enter key
");
getch();
clrscr();
}
int preamble()
{ int options;
while(1)
{
printf("
SELECT YOUR OPTION
");
printf("******************
");
printf(" 1.
Instructions
2. Single player
game(player2=computer)
");
printf(" 3.
Two player game
");
printf(" 4.
Exit from the game
");
scanf("%d",&options);
clrscr();
switch(options)
{
case
1:display_instr(); break;
case 2:
single_player_game(); return(0);
case
3:select_box(70,140); return(0);
case 4:exit(0);
default:
printf("please enter the valid choice
");
}
}
}
void initial_setup()
{
outline(RED);
putbox();
//INITILLY DRAW OUTLINE BOX
initial();
//INITIAL FILLED BOX DRAWING
int x,y;
gotoxy(50,9);
printf("user1 user2");
gotoxy(0,0);
//print user1 yellow box(above score)
for(x=400; x<=420 ;x++)
for(y=162; y<=
182; y++)
putpixel(x,y,14);
for(x=545; x<=565 ;x++) //to print user2 green box
for(y=162; y<=
182; y++)
putpixel(x,y,2);
}
void welcome_note()
{
printf("
Hi,
this is Manikanta.c.v, completed B.E (TCE) at
Dr.Ambedkar Institute
Of Tehnology,Bangalore. ");
printf("if you have any comments regarding this game
means
please
let me know through
cvm.mani@hotmail.com
-THANK
YOU
");
getch();
clrscr();
}
main()
{
//int gdriver=DETECT,gmode=0;
clrscr();
welcome_note();
preamble(); //OPTIONS GIVEN MENU
getch();
closegraph();
// printf("GAME
OVER");
return 0;
}
No comments:
Post a Comment