Design a minesweeper game of N*N grid
Some randomly-selected squares, unknown to the player, are designated to contain mines. On each turn, the player has to select a square (x,y) by indicating if it contains a mine(flagging) or if it is safe, thereby opening it. If the square containing a mine is revealed, the player loses the game.
If it does not contain a mine, a digit is instead displayed in the square, indicating how many adjacent squares contain mines;if no mines are adjacent, the square displays '0'.
Two squares are adjaecnt to each other only if they share at least one side. Sample input: Enter the minefield layout: xxm, xmx, xxx (This represents a 3*3 minefield with mines located in 1,3 and 2,2 locations.
The program should then display the grid as shown below with all squares concealed.) xxx xxx xxx Enter option:o(0,0) (open location (0,0). The program should then display) 0xx xxx xxx Enter option:o(0,1) (open location (0,1). The program should then display) 02x xxx xxx Enter option:f(0,2) (open location (0,2). The program should then display) 02f xxx xxx Enter option:o(1,1) (open location (1,1). The program should then display) 02f xmx xxx Oops! You stepped on a mine! Game over!
If the player opens all the locations that do not have mines, the player wins the game. In such a case, the output will be shown as below 02f 1f2 010 Wow! You cleared the minefield! Game over! Note that the player has to open all locations that do not contain a mine.
If some squares are flagged but do not contain a mine, he still has to continue and open the squares that don't have mines. If he requires, he can open a location that has already been flagged.
Extension: Allow a player to "clear around" a revealed square once the correct number of mines have been flagged around it.If the player does this before identifying all mines around the square the user could lose the game if an adjacent square contains a mine.