GameManager
	Game thread(call PlayerManager in each timeslot)

Player
	interface for players
AbstractPlayer 
	Abstract class for players; player class should extend this class
	---HumanPlayer (allow keyboard input)
	---RandomPlayer (random movement, least avoidance is implemented)
	
	---BasePlayer (some utility methods are implemented)
	
	# Following players are based on "Robert Xiao's Tron Strategy Guide"
	# (see http://csclub.uwaterloo.ca/contest/xiao_strategy.php)
	
	---OrderedPlayer
		(selects directions in a specific order, beginning with a most 
		preferred direction and choosing the next direction if the preferred 
		direction is not available)
	---WallHuggingPlayer
		(attempts to move onto a square adjacent to a wall, 
		thus "hugging" the wall by following it around)
	---MostOpenDestSelectionPlayer
		(chooses the destination square with the most open neighbors)
	---EnemyAvoidancePlayer
		(simply chooses the destination farthest from the opponent)

PlayerManager
	collects input from Player(s), updates Tron positions
Main
	initialization

PlayField
	Play room. Here is everything to play this game.

DisplayManager
	responsible to displaying (subclass of Canvas)

RefPlayField 
	reference field class for players, does not provide "set" related method

Tron
	manages each tron state
