Minesweeper
Minesweeper
It's time for your first Major Project! And you have to build a classic game - Minesweeper, which you
must have played a lot and in case you haven’t then go right away and play the game a bunch of
times to get a decent idea around it! In fact you can(rather you should :P) explore Minesweeper
apps on playstore to get a decent idea of what you have to build.
Minesweeper is a single-player puzzle video game. The objective of the game is to clear a
rectangular board containing hidden "mines" or bombs without detonating any of them, with help
from clues about the number of neighbouring mines in each field.
• Every button on the minesweeper board can either be unturned, or
marked as a flag.
• If the user un-turns a mine or marks all of the mines as flags, the game
ends.
• Every unturned button on the board holds a number, which represents
the number of neighbouring mines.
• If the number of neighbouring mines for the unturned button is zero, all
its neighbours are unturned as well.
https://ninjasfiles.s3.amazonaws.com/asset_0000000000000077_1590472558_SS2.jpeg
https://ninjasfiles.s3.amazonaws.com/asset_0000000000000078_1590472567_SS3.jpeg
https://ninjasfiles.s3.amazonaws.com/asset_0000000000000079_1590472578_SS4.jpeg
https://ninjasfiles.s3.amazonaws.com/asset_0000000000000081_1590472673_FinalVideo.gif
2. Difficulty Levels and Custom Boards (10 + 10): Difficulty levels should be implemented such that
the UI is dynamic and adjusts according to different boards as well as mine size. Also logic to the
number of mines and score should work well according to the option selected. Both code logic and
relevant UI changes will be evaluated. Difficulty levels and custom boards carry equal marks.
3. Top Bezel (20): Design a top bezel that displays information about the game(number of mines left
to be flagged and timer) as well as provides buttons to restart the game etc. The functionality of these
buttons should work well.
4. Comments (10): The code should have proper comments to make it easily understandable. There
should be a readme file - explaining additional features/highlights implemented.
5. Code Quality (10): Proper classes and functions should be created to eliminate redundant code,
such as a button class or an evaluation function.
6. Interactive and Responsive UI (10): The UI should be presentable, responsive and scalable i.e.
should be fit for all screen sizes and should improve user experience. You can use emulators to test
on multiple devices. We aren’t grading you on UI presentation but how well does your UI scales.
5. Innovation (10): Try to implement design or UI innovation such as sharing highscore via text
messages(you have learned intents), work on UI(although we know we haven’t explored styling in
much details yet in the course but it will be good to explore) etc.
Your project will be evaluated on following parameters -
• Interactive and Responsive UI (Max Score 10)
• Code Quality (Max Score 10)
• Comments (Max Score 10)
• Top Bezel (Max Score 20)
• Innovation (Max Score 10)
• Difficulty Levels and Custom Boards (Max Score 20)
• Game Logic and Saving State (Max Score 20)