Untitled
unknown
plain_text
4 years ago
4.1 kB
27
Indexable
// Assignment 1 21T2 COMP1511: Minesweeper // minesweeper.c // // This program was written by YOUR-NAME-HERE (z5555555) // on INSERT-DATE-HERE // // Version 1.0.0 (2021-06-19): Assignment released. #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]); //void detect_row(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? "); // TODO: Scan in the number of pairs of mines. scanf("%d", &mine_num); // TODO: Scan in the pairs of mines and place them on the grid. 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; } printf("Game Started\n"); print_debug_minefield(minefield); // 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. while(1) { int command; scanf("%d",&command); if(command==1) { //Command 1 code here int r,c,leng; int count = 0; scanf("%d %d %d",&r,&c,&leng); for(int j=c; j<=(leng-1); j++) { if(minefield[r][j]==HIDDEN_MINE) { count++; } } printf("There are %d mine(s) in row %d, from column %d to %d\n",count, r, c, (c+leng-1)); print_debug_minefield(minefield); } 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=(r-(s/2)); i<=(r+(s/2)); i++) { for(int j=(c-(s/2)); j<=(c+(s/2)); j++) { if(minefield[i][j]==HIDDEN_MINE) { count++; } } } printf("There are %d mine(s) in the square centered at row %d, column %d of size %d\n",count, r, c, s); print_debug_minefield(minefield); } } // 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 // } // } 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++; } } //Count The Number Of Mines In A Square //void detect_row(int minefield[SIZE][SIZE]) { // int a // scanf("%d", &a) // if a == DETECT_SQUARE;
Editor is loading...