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" and "Advanced". The board size and number of mines for each of these three choices are the following: Beginner: board 8x8 and 12 mines, Expert: board 20x20 and 50 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 or 6 minutes for Advanced 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 blue 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 something similar to what you should implement (maybe board sizes will differ and some colors, etc) try this implementation of minesweeper: http://www.freeminesweeper.org/minecore.html