public class Hand { private Card[] cHand; private int iCardCount; public Hand(Card cFirst) { cHand = new Card[12]; cHand[0] = cFirst; iCardCount = 1; } public int getScore() { int iScore=0; int iAceCount=0; for (int i = 0; i < iCardCount; i++) { if (cHand[i].getValue() == 11) iAceCount++; iScore += cHand[i].getValue(); } while (iScore > 21 && iAceCount > 0) { iScore -= 10; iAceCount--; } return iScore; } public boolean hasAce() { int iAceCount=0; for (int i = 0; i < iCardCount; i++) { if (cHand[i].getValue() == 11) iAceCount++; } if (iAceCount > 0) return true; return false; } public void deal(Card cNext) { if (iCardCount<12) { cHand[iCardCount] = cNext; iCardCount++; } } public int faceCard() { if (cHand[1] == null) return 0; else return cHand[1].getValue(); } public int cardCount() { return iCardCount; } public String toString() { String sOut = ""; for (int i = 0; i < iCardCount; i++) sOut += cHand[i].toString()+" "; sOut += "-> Score: "+getScore(); if (getScore()>21) sOut += " BUST!"; return sOut; } }