Implement in Java with a GUI the game Minesweeper with the following restrictions:
1. Board size: you should give the option to the user to choose at the start of the game between “Beginner”, “Intermediate” and “Advanced”. The board size and number of mines for each of these three choices are the following: Beginner: board 7×9 and 10 mines, Advanced: board 13×18 and 35 mines and finally Expert: board 22×25 and 91 mines
2. your game should have a timer that displays the number of seconds played so far, if the clock reaches 1 minute for Beginner, 3 minutes for Advanced or 10 minutes for Expert then the game is lost and the mines should explode
3. Implement some small animation of mines exploding and at the same time the game should also make an exploding sound. Obviously only the not yet uncovered mines should explode,the ones that were marked as mines should not explode. Furthermore your program should point out with a red X the locations where the player marked as mine and were not correct.
4. the control of the game should be done completely by mouse clicks: left click uncovers that location, right click marks as mine in that location, a second right click erases the mine marking for that location
5. BONUS for +2p a second click on a revealed location that has the number of mines adjacent to it marked will uncover automatically all the cells adjacent that are supposed to not have any mines.
As an example of what you should implement try this implementation of minesweeper: http://www.freeminesweeper.org/minecore.html