# Untitled

unknown
c_cpp
3 years ago
3.0 kB
2
Indexable
Never
```#include <stdio.h>
#include <stdlib.h>

// Possible square states.
#define VISIBLE_SAFE    0
#define HIDDEN_SAFE     1
#define HIDDEN_MINE     2

// The size of the starting grid.
#define SIZE              8

// The possible command codes.
#define DETECT_ROW      1
#define DETECT_SQUARE   2
#define REVEAL_CROSS    3
#define GAME_MODE       4
#define FLAG_MINE       5
#define DEFUSE          6

// Add any extra #defines here.

void initialise_field(int minefield[SIZE][SIZE]);
void print_debug_minefield(int minefield[SIZE][SIZE]);

// Place your function prototyes here.

int main(void) {
int minefield[SIZE][SIZE];
int mine_num;

initialise_field(minefield);
printf("Welcome to minesweeper!\n");
printf("How many mines? ");
scanf("%d", &mine_num);
// TODO: Scan in the number of pairs of mines.

printf("Enter pairs:\n");
for(int i=0;i<mine_num;i++){
int a,b;
scanf("%d %d",&a,&b);
if (a > SIZE-1 || b > SIZE-1)
continue;

minefield[a][b] = HIDDEN_MINE;
}
// TODO: Scan in the pairs of mines and place them on the grid.

printf("Game Started\n");
print_debug_minefield(minefield);

while(1){

int command;
scanf("%d",&command);

if(command==1){
//Command 1 code here
}

else if(command==2){
//command 2 code here
int r,c,s;
int count = 0;
scanf("%d %d %d",&r,&c,&s);
for(int i=s/2;i<=(r+(s/2));i++){

for(int j=s/2;j<=(c+(s/2));j++){
printf("%d  %d",i,j);

if(minefield[i][j]==HIDDEN_MINE){
count++;
}

}

}

printf("%d",count);

}
else if(command==3){
//command 3 code here
}
else if(command==4){
//command 4 code here
}
else if(command==5){
//command 5 code here
}
else if(command==6){
//command 6 code here
}

}

// TODO: Scan in commands to play the game until the game ends.
// A game ends when the player wins, loses, or enters EOF (Ctrl+D).
// You should display the minefield after each command has been processed.

return 0;
}

// Set the entire minefield to HIDDEN_SAFE.
void initialise_field(int minefield[SIZE][SIZE]) {
int i = 0;
while (i < SIZE) {
int j = 0;
while (j < SIZE) {
minefield[i][j] = HIDDEN_SAFE;
j++;
}
i++;
}
}

// Print out the actual values of the minefield.
void print_debug_minefield(int minefield[SIZE][SIZE]) {
int i = 0;
while (i < SIZE) {
int j = 0;
while (j < SIZE) {
printf("%d ", minefield[i][j]);
j++;
}
printf("\n");
i++;
}
}
```