public static void printHand(Hand hand) {

		// print hand header
		ArrayList<String> attrs = new ArrayList<String>(3);
		if(!hand.getDescription().equals(""))
			attrs.add(hand.getDescription());
		attrs.add("score: " + hand.getScoreString());
		if(hand.getBet() > 0.0f)
			attrs.add("bet: $" + hand.getBet());

		output.println(hand.getPlayer().getName() + "\'s hand (" + join(attrs, ", ") + ")");

		if(UNICODE) {

			// create a "buffer" to contain the ASCII hand
			StringBuilder[] buffer;
			buffer = new StringBuilder[5]; // card height is 5
			for(int i=0; i<5; i++)
				buffer[i] = new StringBuilder();
			try {
				for(Card c : hand.getCards())
					printCardToBuffer(buffer, c);
			} catch (Exception e) {
				e.printStackTrace();
			}

			// hand buffer populated, print to output stream
			for(StringBuilder sb : buffer)
				output.println(sb.toString());
		}
		else {
			for(Card c : hand.getCards()) {
				output.print(rank(c) + suit(c) + " ");
			}
			output.println();
		}
	}