Course Name: Advanced Programming Concepts Dead Line- 04/18/2022 Implement in Java with a GUI the game Minesweeper with the following restrictions:1. Board size: you should give the option to the u


Course Name:  Advanced Programming Concepts

Dead Line-  04/18/2022Implement 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 mines2. 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 explode3. 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 location5. 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

Additional information:1. you have 3 possible submissions/re-submission for this project. I will be grading the very last submission. If that submission is late and other submissions are not late I will consider that you submitted late the assignment. If you want me to consider another submission, not the latest one do let me know by e-mail2. the grading scheme is the following:a. if the project does not compile on my system you receive at most 10 points (out of the 20). I will compile the projects in command line with the command javac filename.java; if you need any flags or compiler options do specify them in a file readme.txtb. if there is a single sourcecode file without your name and student number in the first 3 lines of code you will lose 5 pointsc. if there are paths hardcoded in the code you will lose 5 pointsd. if you do not follow the standard naming conventions in Java (https://www.oracle.com/technetwork/java/codeconventions-135099.html) you will be losing 2 points