-------------------------------------------------------------------------
Note:-
This game is tested on on CodeBlocks IDE and DevC++ IDE on Windows OS.
To run this game , use of CodeBlocks IDE or DevC++ IDE (on Windows OS) is recommended.
Using other IDE might generate errors.
(Windows OS is necessary, running Game on other OS might not work)
--------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
void welcome();
void rand_mines(char msweep[12][12]);
void printmatrix(char msweep[12][12],int r,char user_chart[12][12]);
int process(char msweep[12][12],int r,int c,char user_chart[12][12]);
int main()
{ // size of array is 10,array starts from 1 to 11
char msweep[12][12] = {{'0'}};
int i,r,c;
char user_chart[12][12] = {{'0'}};
rand_mines(msweep);
printf("Enter your location(ONLY 1 - 11) on the minefield x,y\n");
scanf("%d%d",&r,&c);
printmatrix(msweep,12,user_chart);
i = process(msweep,r,c,user_chart); //returns 1 or 0,1 is notmine 0 = mine
while(i == 1)
{
printf("Lucky BRAT, live on for another step\n");
printf(" %c Surrounding MINEs\n\n",msweep[r][c]);
printmatrix(msweep,12,user_chart);
printf("enter next move...(ONLY 1 - 11) ");
scanf("%d%d",&r,&c);
i=0;
i = process(msweep,r,c,user_chart);
}
if(i==0)
printf("Game OVER, ta ta. you stepped on a MINE !!\n");
return 0;
}
void welcome()
{
char op; // opereation
printf("Welcome to MINESWEEPER in C >>.....\n");
printf("Enter <<\n");
printf(" i for instructions\n");
printf(" any other key to enter game\n");
scanf("%c",&op);
if(op == 'i')
{
printf("OH DEAR, what a shock you are unfortunatly in the midst of a "); printf("mine field.\n");
printf("Enter the coordinates of the x and y plane between 1 to 11\n");
printf("Are you destined to DIE or live ?\n");
printf("HA ha ha hah, GOOD LUCK\n\n");
}
else
return;
}
void rand_mines(char msweep[12][12])
{
int r,c,m;
for(m=0;m<20;m++) // plant 20 rand mines
{
r = rand() % 13; // this is mine planting
// so can be at the edges aswell
c = rand() % 13; // so 0 to 13 is APPROPRIATE.
msweep[r][c] = '9';
printf("%d %d \n",r,c);
}
return;
}
void printmatrix(char msweep[][12],int r,char user_chart[12][12])
{
int i,j;
printf(" .-.-.-.-.-.-.-.-.-.-.-.\n");
for(i=1;i<r;i++)
{
printf("./.");
for(j=1;j<12;j++) //printing 1 to 11
{
printf("%c ",user_chart[i][j]);//to refer to mines use msweep[i][j]
}
printf(".\\.");
printf("\n");
}
printf(".-.-.-.-.-.-.-.-.-.-.-.-.\n\n");
return;
}
int process(char msweep[12][12],int r,int c,char user_chart[12][12])
{
int i=r,j=c,b=0,k;
char C;
if(msweep[r][c] == '9')
{ k=0;
return k;
}
else
{
if(msweep[i-1][j-1] == '9')
b++;
if(msweep[i-1][j] == '9')
b++;
if(msweep[i-1][j+1] == '9')
b++;
if(msweep[i][j-1] == '9')
b++;
if(msweep[i][j+1] == '9')
b++;
if(msweep[i+1][j-1] == '9')
b++;
if(msweep[i+1][j] == '9')
b++;
if(msweep[i+1][j+1] == '9')
b++;
C = (char)(((int)'0')+b); // to covert int to char;
msweep[r][c] = C;
user_chart[r][c] = C;
}
return 1;
}
Comments
Post a Comment