Assignment 9: Word Game Part 4: Complete Two-Player Word Game (+Sensor Secret Sauce for 5520)

This is an individual assignment. Unlike other assignments, this assignment differs for students in 4520 and 5520.

This is the final part of your word game assignment, and now is the time to make the game shine in both single and multi-player modes. Students in 5520 must also use sensors to add their own "secret sauce" that will spice up the game and take it to a new level of fun and playability.

In Assignment 7 you did the preliminary design for this game, but you probably learned something about how to make it work during that exercise. Simplify your design if need be. Remember, the more you work out your design carefully in advance, the easier the programming will be. As discussed in class, your app design and the complexity of programming that app are linked.

The first goal of this assignment is to fix all your prior Word Game assignments. If you have any remaining problems that were discovered when you turned them in, they should be resolved by now. This includes crashing, sluggishness, conceptual game play problems, etc. In short, you should have a well functioning, innovative word game and code that demonstrates that you can save and retrieve data from the Cloud, use Google Cloud Messaging to communicate rapidly between phones during asynchronous game play, and use notifications to get the user's attention.

What remains is to fully implement your two-player game.

For students in 4520:

For students in 5520:

This assignment is your last chance to show of your creativity, design process, and programming skills as an individual. Think of this assignment as helping you to end up with an impressive, functioning app that you can show people such as potential employers when the class is over. Impress us, and you will impress them! Top priority is to get the single player game working, if you struggled in the prior assignments, and to then use the communication to add the two player mode(s).

Students in 5520 must be careful: you don't want your additions using the sensing to make the game play LESS fun, more slow, etc.

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 alpha app on the Play Store. Add a new button on your apps initial screen, "Two Player Word Game" which will start your game. Your app should then have 8 buttons: About, Generate Error, Sudoku, Dictionary, Word Game, Communication, Two Player Word Game, and Quit. 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 available 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). Bitbucket should show evidnece you are using Git and the feature/bug tracker properly.

If you find bugs after submitting, fix them promptly, because you may get lucky if we haven't graded your app yet.


You will be graded based on how well your app demonstrates that you have properly designed and programmed a fully-functioning two player experience, that takes into account the constraints (discussed in class) of mobile communication and (for 5520) the constraints in sensing. Above all else, you need to ensure your game has ROBUST behavior (both in terms of design and technology).

Although it is subject to tweaking, this table will give you a sense of how you will be assigned points.