我无法将我的Ace卡值设置为1或11.当我问他怎么做时,我的教授对我说:
ace的值取决于你手中的其他牌。你必须先添加所有其他牌,然后决定ace是否应该算作一个或十一个。你应该在你的手类中使用一个方法(我使用的是玩家类),称为" value"这决定了你手的价值。在该方法内部将是确定一个ace是一个还是十一个的逻辑。
还不确定如何做到这一点。
class Card
{
private char suit;
private char rank;
private boolean facedown;
Card (char R, char S)
{
rank = R;
suit = S;
}
public int value ()
{
int index = 0;
int [] valueArray = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10
};
char [] suitArray = {
'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K'
};
while (rank != suitArray[index]) {
index++;
}
return valueArray [index];
}
}
class Player
{
private Card [] storage;
private int top;
public Player()
{
storage = new Card[20];
top = 0;
}
public void take(Card c1)
{
storage[top] = c1;
top++;
}
public int value()
{
}
}