gpt4 book ai didi

java - Java中如何将两个 "Cards"的值相加?

转载 作者:行者123 更新时间:2023-12-02 05:22:40 25 4
gpt4 key购买 nike

我正在开发一个项目来模拟二十一点游戏中的第一笔交易。到目前为止,程序创建了两张随机等级(ACE 到 KING)和随机花色的牌。我正在努力创建一个切换表或 if-else 梯形图,将两张卡的附加值分配为可变分数。下面的代码从概念上代表了我想要做的事情,我只是想知道如何使其更简单。谢谢!

    public int Score()
{
int score = 0;

if (card1.rank() == TWO && card2.rank() == TWO){
score = 4;
} else if (card1.rank() == THREE && card2.rank() == TWO){
score = 5;
} else if (card1.rank() == FOUR && card2.rank() == TWO){
score = 6;
} else if (card1.rank() == FIVE && card2.rank() == TWO){
score = 7;
} else if (card1.rank() == SIX && card2.rank() == TWO){
score = 8;
} else if (card1.rank() == SEVEN && card2.rank() == TWO){
score = 9;
} else if (card1.rank() == EIGHT && card2.rank() == TWO){
score = 10;
} else if (card1.rank() == NINE && card2.rank() == TWO){
score = 11;
} else if (card1.rank() == TEN && card2.rank() == TWO){
score = 12;

return score;
}

rank() 方法调用每张卡牌等级的整数值,但是,卡牌等级被分配在不同的类中,如 TWO = 0、THREE = 1、FOUR = 2...QUEEN = 10、KING = 11,ACE = 12 所以我试图将“分数”指定为等于两张牌的实际值相加。抱歉,如果这令人困惑,我会回答任何问题。

最佳答案

类似这样的事情:

enum Rank {
ACE(1),
TWO(2),
THREE(3),
// ...
TEN(10),
JACK(10),
QUEEN(10),
KING(10);

private final int value;

Rank(int value) {
this.value = value;
}
int getValue() {
return this.value;
}
}

// ...
totalValue = card1.getRank().getValue() + card2.getRank().getValue();

如果您不想处理枚举,则可以将排名表示为简单整数。它不太安全,但对于简单而短的代码来说还可以。

但无论你选择哪种表示形式,你都需要注意 A - 如果你有 A,则会有另一个大 10 的总和;如果您有两个,则需要多出 20 的总和。

关于java - Java中如何将两个 "Cards"的值相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com