Assignment 4: Boggle (modified Sudoku from text)

Due Sunday Oct 7 by 9PM

This is an individual assignment.

Note: This assignment will be very time consuming for those completely new to Android, and especially for those also brushing up on Java. Please start early!

The purpose of this assignment is to help you learn more of the basics of creating Android apps and to move you towards an interesting project. To make that simpler, you are starting with the Sudoku example from your textbook and turning it into a functioning Boggle game.

The Sudoku game is similar to Boggle in some respects.

All the basic components that you need to create a Boggle game are used in the Sudoku game, such as use of 2d graphics. Your goal is to study the Sudoku code (reading the chapters in the text related to it) and figure out how to modify the Sudoku game into a functioning Boggle game. The game can have a very simple look and feel, but it needs to work robustly.

There are numerous Boggle-like games on the Market and on the Internet (most are not named Boggle because that name is trademarked). This type of word search game is simple yet, for many people, totally addictive. It can also be modified to play with other people and small variations in game design can make it more or less fun to play.

To get started, find some variations on Boggle and play them for a bit. A search for Boggle on the Android Market will turn up many games: ICED (Lite), BoggleDroid Lite, Dropwords, WordTwist Lite, etc. Make notes about what you like or don't like about game design, interaction, scoring, etc. They are all a bit different. Please do not skip this, because you will see how small changes in the GUI can impact overall experience. Decide on how your would like your game to work.

Your game must have the following:

You should use this wordlist (compiled from the http://wordlist.sourceforge.net/ website).

If you want to get fancy, you could also add other features, but this is not required. Ideas are adding new background music (different than what is used for Sudoku), sound effects that contribute to game play (countdown sounds when timer close to running out), determining target "bonus" words that someone gets extra points for finding, allowing user to select desired board size, saving scores long-term, or doing something clever with the seeding of the board, etc. You are welcome to change the way the game is scored if you want, but if you do change the game from the basics, add an "Intro" button that will explain the game play.

You are building this game for educational purposes only, not for actual release, so feel free to grab graphics from any source and use them in your game if you want. (Important: For an actual game that was being released you would need to design the graphics yourself or get permission to use all graphics you incorporate, therefore, if you do want to use this app outside of class someday, you might want to design your own graphics or find graphics that you know do not have copyright restrictions).

Your game should be added to your existing app on the Market. Add a new button on your apps initial screen, "Boggle," which will start your game. Your main app on the Market will then have 5 buttons: About (with your team info), Generate Error (generates error), Quit (exits), Sudoku (runs Sudoko from Assignment 1), and Boggle (runs assignment 4). Do not add a new icon and launcher for this game ... It should be launched from the home screen of the same app you had for Assignment 1.

As you complete this assignment and have “aha!” moments where you figure out tricky things that might hold other people up, you should help out your classmates on Piazza.

Your app should be avaiable on the Play Store by the assignment deadline, and your Git repository should be up to date with your code (and easily buildable from scratch should we need to download it and compile your project).

You will be graded based on how well you follow the instructions above using the app that is downloaded from the Play Store Sunday night. Your application will be tested on an actual Android phone, not the emulator. Please note that if you plan to team up, this will be your last chance to shine as an individual.