***Answer in MIPS/MARS Assembly Language**
Add a visible turn counter display to the last line of the screen. Update it after each turn.
Add a timer to turn cards back face-down after they have been exposed for 2 seconds, if the user hasn’t clicked on a card. This involves expanding the polling loop to look for timeouts. (or for our graduate students, using callback rouines.)
Track the number of pairs matched to determine when the game is over. Display a Win message.
Delete all the cards, when the game is over. Clear the mouse Map and the shuffle array.
Add a timer to show the number of seconds passed since the game started on the bottom of the display. It should stop when the game is over.
Add two “buttons” to the bottom line: <Exit> <New Game>. These may also respond to keystrokes (x,n). This will involve modification to the existing mouse event, and addition of keyboard to the polling loop.
For a “knock-your-socks-off” extra-credit add on: Use a read/write file to track high scores (low times and low turn-counts) for each level of the game. Display the best 5 scores for each level. Ask the user for their name if they get on the list.