Lab 4 - Android App

CS345 Android Program – Chessboard with Timer
Allow the user to make moves by clicking (touching) a piece and then clicking
(touching) the destination square. If the destination square is occupied, the
previous occupant will be removed from the board. Your users may completely
disregard the rules of chess. Any piece can move anywhere at any time. Pieces
that have been selected should be highlighted.
There is a time displayed in each of the buttons on the far ends of the display.
These buttons indicate the time remaining for the player on the corresponding
side to complete the game. After a player makes a move, he or she will press the
button to stop their clock from ticking down, and start their opponent’s clock
ticking down. If a player runs out of time a message will be displayed on their
button, as shown in the screenshot on the right.
A “Take Back Move” button should be provided to undo the previous move. This
should restore the board to the state it was in at the start of the last move made.
It should also restore the clocks to the times they displayed at the start of the
retracted move.
Your program must save the state of the board in a Bundle so that it may be
recovered if the program is paused or restarted. It does not need to save the
position to persistent memory. Note that views that have unique id’s will be
restored automatically. You will need to use the Bundle to remember how to
undo the last move.
Localization
You should provide string files for at least two different languages. One of
languages must be English. The out of time message must be presented in the
language of the current locale.
Notes:
 Squares should be square – they are not quite square in the screenshots.
 The view should be reasonable if rotated, although the normal operation of
this application is in landscape mode.
 Don’t spend a lot of time on any one feature. You need to show that you
can:
o Provide a good layout
o Respond to application state changes
o Display resources
o Use a countdown timer
o Provide string localizations
o Respond to rotations