The objective of this assignment is for students to gain a first-hand knowledge in developing a full app for the Android OS. The assignment is to be worked on in a group of up to two students. The final codebase and apk file for the project is to be handed no later than by midnight Saturday, September 19th. Students will give a short presentation and demo their project in class on Monday, September 21st. You need to use GitHub (or BitBucket) for hosting the project and give the instructor a read access to the repository.
Your task is to make an app for playing a game called Dots. To learn about the game, please download the Dots app (by PlayDots Inc.) from the Google PlayStore (https://play.google.com/store/apps/details?id=com.nerdyoctopus.gamedots).
You have a considerable freedom in how you design your app, but it should have at least the following functionality:
-
- A home activity, from which the user can navigate to the other activities. a. E.g.buttonsfor‘Play’,‘Options’.
-
- An activity where the user can configure various options of the game. This should include at least the option to reset the high-score list, but should also include other configuration options (of your choice;; e.g., sound, vibrations, colors).
-
- A board for playing the puzzle game, which includes:
- a. Agraphicaldisplayusingatouch-basedinterfaceforplayingthegame.
- b. Useofsoundand/orvibration
- c. The ability to use at least two different board sizes (where 6 X 6 should be the default size).
- d. Fivedifferentcolorsofdots,toappearrandomly.
-
- The user should be given a fixed number (30) of moves for solving a puzzle.
-
- An activity using a list (grid) for listing high-scores, different list for each board size. The high-scores should be kept.
-
- Your app should run robustly and look good on different sized displays.
The above is the minimum required functionality, you should aim for additional functionality (of your choice) for improving the game playability. For example, this might include functionality such as:
-
- Additional play modes, e.g. fixed time per puzzle (in addition to fixed moves).
-
- More advanced animations and/or sound features.
-
- There is no need to use the “add-on” features in your basic implementation (i.e., the buttons for more moves, shrinkers, and expanders), but you may choose to do so as an added functionality.
Also, you are free to add even more useful functionality if you have time, but remember correctness before extra functionality!