【发布时间】:2012-11-11 05:01:14
【问题描述】:
我正在尝试计算简单的 BlackJack 游戏的分数。我希望计算机能够根据牌的情况选择何时将 Ace 牌计为 1 或 11,但我不想硬编码这种情况。
我应该怎么做?
这是我在庄家/玩家手牌类别中计算得分的方式:
public int calcScore()
{
int score = 0;
Link current = first;
while(current != null)
{
score = score + current.card.getValue();
current = current.next;
}
return score;
}
这是我在 Card 类中指定卡片值的方式:
public int getValue()
{
int value = 0;
if (rank == 1)
value = 11;
else if (rank == 11 || rank == 12 || rank == 13)
value = 10;
else
value = rank;
return value;
}
【问题讨论】:
-
您应该使用
Enum来存储您的卡片。 -
我只是尝试演示数据结构的使用。恐怕我需要坚持我的解决方案。
-
那么你将不得不对其进行硬编码。没有出路。
-
您可以创建一个
Map用于将值映射到rank。