A project on Mine Gamea using Object Oriented Programing code will given below
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
class cboard
{
private:
int board[10][10];
char falseboard[10][10];
char mssg[80]; // for graphics0
int row,column,mine; // to take input from keyboard
int j,k,i;
int count,count2,count1;
public:
cboard()
{ // use inheritance to initialize array to null
board[10][10]=0;
falseboard[10][10]='\0';
count=0;
count2=0;
count1=0;
for(j=0;j<10;j++)
{ //loop to initialize all value of board zero
for(k=0;k<10;k++)
{
board[j][k]=0;
}
board[(rand()%8)][(rand()%8)]=9; // some value make mine randomly by using rand()
board[(rand()%8)][(rand()%8)]=9;
board[(rand()%8)][(rand()%8)]=9; //function,.. I initialize 9 because
// every value of board max value 8.
// so 9 for mine.
}
for(j=0;j<10;j++)
{ //loop to initialize all value of falseboard to unseen
for(k=0;k<10;k++)
falseboard[j][k]=char(2);
}
}
void showboard();
void calculation();
void countnum();
void showfalseboard();
void takeinput();
void falsemain();
void makezerovisible();
};
void cboard::countnum()
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
if(board[i][j]==9)
count++;
}
void cboard::calculation()
{
for(i=0;i<9;i++) // loop for incrementing neighbours value for corresponding mine
{ //check for mine,if found then increment or not
for(j=0;j<8;)
{
if(board[i][j]==9){
k++;
if(board[i-1][j-1]!=9)
board[i-1][j-1]+=1;
if(board[i-1][j]!=9)
board[i-1][j]+=1;
if(board[i-1][j+1]!=9)
board[i-1][j+1]+=1;
if(board[i][j-1]!=9)
board[i][j-1]+=1;
if(board[i+1][j-1]!=9)
board[i+1][j-1]+=1;
if(board[i+1][j]!=9)
board[i+1][j]+=1;
if(board[i+1][j+1]!=9)
board[i+1][j+1]+=1;
if(board[i][j+1]!=9)
board[i][j+1]+=1;
board[i][j]=9;
j++;
}
else
j++;
}
}
}
void cboard::showboard()
{
cleardevice();
setbkcolor(4);
printf(" GAME IS OVER");
for(int j=0;j<9;j++) // to print mine board
{
cout<<endl<<endl<<" ";
for(int k=0;k<9;k++)
{
if(board[j][k]==9)
cout<<" "<<"["<<char(15)<<"]";
else
cout<<" "<<"["<<board[j][k]<<"]";
}
}
}
void cboard::makezerovisible()
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
if(board[i][j]==0){
count1++;
falseboard[i][j]=char(0);
}
}
}
void cboard::showfalseboard()
{
cout<<endl<<" Total mines: "<<count<<endl<<endl<<" ";
for(i=0;i<9;i++) // to print 0 to 8 to identify column
cout<<" "<<i;
for(j=0;j<9;j++) // to print mine board
{
cout<<endl<<endl<<" "<<j; // print 0 to 8 to identify row
for(k=0;k<9;k++)
cout<<" "<<"["<<falseboard[j][k]<<"]";
}
makezerovisible();
}
void cboard::takeinput()
{
cout<<endl<<endl<<"Enter 9 9 for mine position declare"<<endl<<"Enter position (first row then column): ";
cin>>row>>column;
if(count<=count2)
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
if(falseboard[i][j]!=char(2)) ;
else
break;
clrscr();
cleardevice();
setbkcolor(15);
// getch();
showboard();
cout<<"\n You WIN";
cout<<"\n Congratulations";
getch();
exit(1);
}
if(row!=9){
if((board[row][column])==9&&row!=9)
{ // if input mine then game will b over
clrscr();
cout<<" Game over"<<endl;
showboard ();
getch();
exit(1);
//break;
}
clrscr();
cleardevice();
// showboard();
switch(board[row][column])
{
case 0: falseboard[row][column]=char(0); makezerovisible(); break;
case 1: falseboard[row][column]='1'; break;
case 2: falseboard[row][column]='2'; break;
case 3: falseboard[row][column]=char(51); break;
case 4: falseboard[row][column]=char(52); break;
case 5: falseboard[row][column]=char(53); break;
case 6: falseboard[row][column]=char(54); break;
case 7: falseboard[row][column]=char(55); break;
case 8: falseboard[row][column]=char(56); break;
// case 9: showboard();break;
}
}
if(row==9&&column==9){
cout<<"Enter row and column of mine :";
cin>>row>>column;
count2++;
falseboard[row][column]=char(15);
}
clrscr();
cleardevice();
showfalseboard();
takeinput();
}
void cboard::falsemain()
{ clrscr();
cleardevice();
calculation();
countnum();
showfalseboard();
takeinput();
}
void graphics(){
/* select a driver and mode that supports */
/* multiple background colors. */
int gdriver = EGA, gmode = EGAHI, errorcode;
int bkcol, maxcolor, x, y;
char msg[80];
char *directories;
/* initialize graphics and local variables */
// cout<<"\nEnter tc directories: ";
// cin>>directories;
initgraph(&gdriver, &gmode, "f:\\tc\\bgi");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
/* maximum color index supported */
maxcolor = getmaxcolor();
/* for centering text messages */
settextjustify(CENTER_TEXT, CENTER_TEXT);
x = getmaxx() / 2;
y = getmaxy() / 2;
/* loop through the available colors */
for (bkcol=1; bkcol<=maxcolor; bkcol++)
//{
/* clear the screen */
cleardevice();
/* select a new background color */
bkcol=1;
setbkcolor(bkcol);
sprintf(msg,"Wellcome");
/* output a messsage */
if (bkcol == WHITE)
setcolor(EGA_BLUE);
//sprintf(msg, "Background color: %d", bkcol);
outtextxy(x, y, msg);
getch();
// sprintf(msg,"Nasir");
//}
/* clean up */
// closegraph();
}
void main()
{
cboard object;
graphics();
object.falsemain();
}
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
class cboard
{
private:
int board[10][10];
char falseboard[10][10];
char mssg[80]; // for graphics0
int row,column,mine; // to take input from keyboard
int j,k,i;
int count,count2,count1;
public:
cboard()
{ // use inheritance to initialize array to null
board[10][10]=0;
falseboard[10][10]='\0';
count=0;
count2=0;
count1=0;
for(j=0;j<10;j++)
{ //loop to initialize all value of board zero
for(k=0;k<10;k++)
{
board[j][k]=0;
}
board[(rand()%8)][(rand()%8)]=9; // some value make mine randomly by using rand()
board[(rand()%8)][(rand()%8)]=9;
board[(rand()%8)][(rand()%8)]=9; //function,.. I initialize 9 because
// every value of board max value 8.
// so 9 for mine.
}
for(j=0;j<10;j++)
{ //loop to initialize all value of falseboard to unseen
for(k=0;k<10;k++)
falseboard[j][k]=char(2);
}
}
void showboard();
void calculation();
void countnum();
void showfalseboard();
void takeinput();
void falsemain();
void makezerovisible();
};
void cboard::countnum()
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
if(board[i][j]==9)
count++;
}
void cboard::calculation()
{
for(i=0;i<9;i++) // loop for incrementing neighbours value for corresponding mine
{ //check for mine,if found then increment or not
for(j=0;j<8;)
{
if(board[i][j]==9){
k++;
if(board[i-1][j-1]!=9)
board[i-1][j-1]+=1;
if(board[i-1][j]!=9)
board[i-1][j]+=1;
if(board[i-1][j+1]!=9)
board[i-1][j+1]+=1;
if(board[i][j-1]!=9)
board[i][j-1]+=1;
if(board[i+1][j-1]!=9)
board[i+1][j-1]+=1;
if(board[i+1][j]!=9)
board[i+1][j]+=1;
if(board[i+1][j+1]!=9)
board[i+1][j+1]+=1;
if(board[i][j+1]!=9)
board[i][j+1]+=1;
board[i][j]=9;
j++;
}
else
j++;
}
}
}
void cboard::showboard()
{
cleardevice();
setbkcolor(4);
printf(" GAME IS OVER");
for(int j=0;j<9;j++) // to print mine board
{
cout<<endl<<endl<<" ";
for(int k=0;k<9;k++)
{
if(board[j][k]==9)
cout<<" "<<"["<<char(15)<<"]";
else
cout<<" "<<"["<<board[j][k]<<"]";
}
}
}
void cboard::makezerovisible()
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
if(board[i][j]==0){
count1++;
falseboard[i][j]=char(0);
}
}
}
void cboard::showfalseboard()
{
cout<<endl<<" Total mines: "<<count<<endl<<endl<<" ";
for(i=0;i<9;i++) // to print 0 to 8 to identify column
cout<<" "<<i;
for(j=0;j<9;j++) // to print mine board
{
cout<<endl<<endl<<" "<<j; // print 0 to 8 to identify row
for(k=0;k<9;k++)
cout<<" "<<"["<<falseboard[j][k]<<"]";
}
makezerovisible();
}
void cboard::takeinput()
{
cout<<endl<<endl<<"Enter 9 9 for mine position declare"<<endl<<"Enter position (first row then column): ";
cin>>row>>column;
if(count<=count2)
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
if(falseboard[i][j]!=char(2)) ;
else
break;
clrscr();
cleardevice();
setbkcolor(15);
// getch();
showboard();
cout<<"\n You WIN";
cout<<"\n Congratulations";
getch();
exit(1);
}
if(row!=9){
if((board[row][column])==9&&row!=9)
{ // if input mine then game will b over
clrscr();
cout<<" Game over"<<endl;
showboard ();
getch();
exit(1);
//break;
}
clrscr();
cleardevice();
// showboard();
switch(board[row][column])
{
case 0: falseboard[row][column]=char(0); makezerovisible(); break;
case 1: falseboard[row][column]='1'; break;
case 2: falseboard[row][column]='2'; break;
case 3: falseboard[row][column]=char(51); break;
case 4: falseboard[row][column]=char(52); break;
case 5: falseboard[row][column]=char(53); break;
case 6: falseboard[row][column]=char(54); break;
case 7: falseboard[row][column]=char(55); break;
case 8: falseboard[row][column]=char(56); break;
// case 9: showboard();break;
}
}
if(row==9&&column==9){
cout<<"Enter row and column of mine :";
cin>>row>>column;
count2++;
falseboard[row][column]=char(15);
}
clrscr();
cleardevice();
showfalseboard();
takeinput();
}
void cboard::falsemain()
{ clrscr();
cleardevice();
calculation();
countnum();
showfalseboard();
takeinput();
}
void graphics(){
/* select a driver and mode that supports */
/* multiple background colors. */
int gdriver = EGA, gmode = EGAHI, errorcode;
int bkcol, maxcolor, x, y;
char msg[80];
char *directories;
/* initialize graphics and local variables */
// cout<<"\nEnter tc directories: ";
// cin>>directories;
initgraph(&gdriver, &gmode, "f:\\tc\\bgi");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
/* maximum color index supported */
maxcolor = getmaxcolor();
/* for centering text messages */
settextjustify(CENTER_TEXT, CENTER_TEXT);
x = getmaxx() / 2;
y = getmaxy() / 2;
/* loop through the available colors */
for (bkcol=1; bkcol<=maxcolor; bkcol++)
//{
/* clear the screen */
cleardevice();
/* select a new background color */
bkcol=1;
setbkcolor(bkcol);
sprintf(msg,"Wellcome");
/* output a messsage */
if (bkcol == WHITE)
setcolor(EGA_BLUE);
//sprintf(msg, "Background color: %d", bkcol);
outtextxy(x, y, msg);
getch();
// sprintf(msg,"Nasir");
//}
/* clean up */
// closegraph();
}
void main()
{
cboard object;
graphics();
object.falsemain();
}
No comments:
Post a Comment