#include <stdio.h>char stg;char ms[5][5];char screen[5][5];char flag[5][5];char lastAction[1][1];int x,y,lastX,lastY; //x and y coordinatesint gameover;int flags;int eventCounter=0;int validFlag;FILE *fh;void pickLvl (void);void buildLvl (void);void printScreen (void);int main (void){ gameover=0; int loop=0; int match; pickLvl(); buildLvl(); do { x=getInputRow(); y=getInputCol();// HISTORY CONSTRUCT match=history(); screen[x][y]=ms[x][y]; printScreen();/* HISTORY CONSTRUCT if (match==1); { printf("You cannot use the same value twice.\n"); } */ if (screen[x][y]=='*') { printf("You dun' goof'd.\n"); //If you lost gameover=1; } if (++loop>=20) { printf("You have won the game. Awesome.\n"); //If you won gameover=1; } } while (gameover==0); do { printf("Game over.\n"); return 0; } while (gameover==1); return 0;}void pickLvl (void){ int valid; valid=0; do { printf ("Which field would you like to play? Enter 1, 2, or 3: "); //scanf ("%c", &stg); stg=getchar(); while (getchar()!= '\n'); //Sanatize buffer from null value inputs i.e. only a line break if (stg=='1') { // Open the minefields fh=fopen("field1", "r"); valid=1; } else if (stg=='2') { fh=fopen("field2", "r"); valid=1; } else if (stg=='3') { fh=fopen("field3", "r"); valid=1; } } while (valid==0); if (fh==0) { printf ("Bad file handle\n"); } else { printf("Please enter a valid level number\n"); //in case of input other than 1, 2, or 3 }}void buildLvl (void){ int i, j; for (i=0; i<6; i++) { for (j=0; j<6; j++) { ms[i][j] = getc(fh); screen[i][j] = '-'; } }}void printScreen (void){ int i, j; for (i=0; i<5; i++) { for (j=0; j<5; j++) { printf ("%c", screen[i][j]); } printf ("\n"); }}int getInputRow (void){ int row; int valid=0; char r[2]; do { printf ("Select a Row (0-5): "); r[0]=getchar(); r[0]; while (getchar() != '\n'); //clearing buffer r[1]= '\0'; if ((r[0]>='0')&&(r[0]<='5')) { valid=1; row=atoi(r); } else { printf("illegal input\n"); } } while (valid==0); return row; lastY=row;}int getInputCol (void){ int col; char c[2]; int valid=0; do { printf ("Select a Column (0-5): "); //scanf ("%i", &c[0]); c[0]=getchar(); c[0]; while (getchar() != '\n'); //clearing buffer c[1]='\0'; if ((c[0]>='0')&&(c[0]<='5')) { valid=1; col=atoi(c); } else { printf("illegal input\n"); } }while (valid==0); return col; lastX=col; eventCounter++;}int validateFlag (void){ if(screen[x][y]=='*') { return 1; } else { return 0; }}/* HISTORY CONSTRUCT int history(void){ int match, loop, loop2; char history[20][5][5]; history[eventCounter][lastX][lastY]; printf("eventCounter=%d, x=%d, y=%d",eventCounter,x,y); for(loop=1; loop<=eventCounter; loop++) { for(loop2=0; loop2<5; loop2++) { if(history[loop][loop2][loop2]=='x' && history[loop][loop2][loop2]=='y') { match=1; printf("***positive match.***"); } else { match=0; printf("***NEGATIVE MATCH***."); } } return match;} } */int countFlag (void){ if(flags > 5 && validFlag==1) { return 1; }}