This programming assignment has two parts
turning all the cards in a deck face down. Players take turns flipping over pairs of cards. If the pair matches (e.g. two black sevens or two red Queens) they get to take the cards; otherwise, they flip the cards back over. The goal is to get as many cards as you can and the challenge is to remember where the matching cards are.
In this variant, players will also be matching pairs of words or phrases, e.g. States and their Capitals, and there will be two playing boards: e.g. one with State names and the other with Capital names. Players will take turns selecting positions in the two boards (e.g. A-3 and C-4). If they get a match, those positions are taken off the board and they get a point. This framework can be used for all kinds of simple learning tasks (e.g. learning a foreign alphabet or language, chemical properties of elements, heads of state, multiplication problems, pure memory of colors, ...)
The program should be able to read the game data from a file (or a URL) and the user should be offered
a choice of which game to play as well as how many players there will be and what there names are.
The Pure Java Game (due Friday)
The java version will simply print a textual representation of the two game boards and ask the user to
write their choices (as above "A-3&C-4") and it will prompt the players in order and keep track of the score.
The program should also keep track of the number of games that each player has won. It only has to work with one game (e.g. state capitals). This pure Java version should be developed with JUnit tests for the main classes.
This part of the project has a one hour time limit. After one hour you should upload your code to github and include a comment explaining how far you got and what needs to be done!
What to submit:
The Android Version (due Tuesday)
The android version will present a graphical version of the game where users touch the "cards" to indicate their chosen pair. The android version should also have a soundtrack playing in the background (which should be licensed music, no copyright violations allowed!) and should have a sound effect when there is a match and a different sound effect when there is a non-match.
What to submit:
After this programming assignment you should
If you get into this PA you could extend it in several ways, e.g.
You can get access to a wide range of "flashcard data" at
The card sets can be accessed using a REST-ful interface that returns the data using json