public PlayerPanel(Player p) {
			super();
			player = p;
			playerPnlHash.put(player, this);
			setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
			addMouseListener(new MouseAdapter() {
				public void mouseEntered(MouseEvent event) {
					hiliteTerritories(map.getTerritories(player));
				}
				
				public void mouseExited(MouseEvent event) {
					unhiliteTerritories(map.getTerritories(player));
				}
			});
			
			setBackground(player.color);
			
			nameLbl = new JLabel(player.name);
			nameLbl.setBorder(BorderFactory.createEmptyBorder(1, 5, 0, 0));
			nameLbl.setForeground(Color.BLACK);
			
			troopCount.setForeground(Color.BLACK);
			troopCount.setBorder(EMPTY_BORDER);
			terrCount.setForeground(Color.BLACK);
			terrCount.setBorder(EMPTY_BORDER);
			bonusCount.setForeground(Color.BLACK);
			bonusCount.setBorder(EMPTY_BORDER);
			
			if (cardType != RiskGame.NONE) {
				cardCount = new JLabel("0 cards");
				cardCount.setForeground(Color.BLACK);
				cardCount.setBorder(EMPTY_BORDER);
				if (numPlayers <= 10)
					cardCount.setFont(LABEL_FONT);
				else
					cardCount.setFont(SMALL_LABEL_FONT);
			}
			
			if (numPlayers <= 10) {
				nameLbl.setFont(NAME_FONT);
				troopCount.setFont(LABEL_FONT);
				terrCount.setFont(LABEL_FONT);
				bonusCount.setFont(LABEL_FONT);
			} else {
				nameLbl.setFont(SMALL_NAME_FONT);
				troopCount.setFont(SMALL_LABEL_FONT);
				terrCount.setFont(SMALL_LABEL_FONT);
				bonusCount.setFont(SMALL_LABEL_FONT);
			}
			
			setPreferredSize(new Dimension(100, Math.max((int) (500.0 / Math.ceil(numPlayers / 2.0)), 85)));
			
			add(nameLbl);
			add(troopCount);
			add(terrCount);
			add(bonusCount);
			if (cardType != RiskGame.NONE)
				add(cardCount);
		}