BINGO game TODO list
+ MUST DO
* Exercise for the reader
2 Volume 2

KATHY MUST DO

+ for all cards that expect user typing:
  - use requestFocus after setVisible(true)
  ???I don't remember what this is talking about???

+ Make sure all UI manipulation happens either at initialization
  time or in the AWT thread.  Yuck.

+ notify table of data changed rather than doing a repaint

BOTH MUST DO

+ substitute single method calls for all fatal errors
  (and nonfatal errors?)
  NOTE: I created a class called ErrorMessages with several static methods
  for this purpose

+ make sure each catch{} at least prints a debugging
  message

+ make sure that access is "correct" or at least deliberately chosen

+ comment code // XXX ACTUALLY, I don't think we should do this.
	// we want to be able to use includejava to include the
	// code in HTML and we don't want comments in there. I
	// think the pages in the lesson is comment enough.

+ clean up code and comments.  make everything consistent (comment
  style, protected vs. private, etc.)  make it look like one person
  wrote the program, and that person conformed to the JavaSoft style
  (unless it's impractical).

+ search for PENDING and XXX

+ fix bugs (See below)


MARY MUST DO

+ figure out synchronization in RingMaster and comment it
	// XXX ALMOST DONE

OTHER THINGS TO DO (WHEN/IF WE HAVE THE TIME)

- improve UI look of cards
  - use a tiled background to simulate paper
  - bring up a status window (dialog) someone else won
  - use BoxLayout instead of GridBagLayout
  - do D&D from gameplayer to CWs
  - use 2D to use nice fonts (antialiased, etc.)?
  - use transparent gifs/fonts
  - custom cursor? (instead of D&D, since look always the same;
    some systems don't support color cursors)
  - smaller windows

- create a PropertiesLayoutManager that uses BoxLayouts
  and Containers to lay out lists of labels and text fields.

- add EventQueues for RMI stuff -- one for status (game),
  and one for actions from CardWindows

- For debugging purposes, put in manual ball calling.
  Needs UI.

- In the gamekeeper table, say when there's a winner.  Maybe track
  # of games won.

- allow players to withdraw from the game

- get a dedicated bingo machine?

- what about lost connections?

- should any classes be final?

- use a simple table when it becomes available

2.internationalize it (BOOK #2?)

3.use sound to announce balls, if you do this, then put
  in mute capability


BINGO GAME KNOWN BUGS

GAME: we've seen at least one occasion where a player registered
    and got cards, but wasn't notified when balls were announced.
    ****CANNOT REPRODUCE THIS****

PLAYER: If you start the player too soon after starting the game,
	then the connection with the game can never happen.
