我知道这个问题之前可能已经得到了回答,但我已经围成一圈了。我可以比较两个字符串,但比较三个我不知道如何。我的代码的目的是玩家有3张牌,如果两张牌有相同的牌,则玩家获得5点额外积分,如果所有三张牌都相同则玩家获得10点积分。我可以加5分,但我不能只在所有三个都正确的情况下加10。有人可以帮忙吗?
这是我的代码
private void setScore()
{
score = cardOne.setScore() + cardTwo.setScore() + cardThree.setScore();
if(cardOne.getSuitName().equals(cardTwo.getSuitName()))
if(cardOne.getSuitName().equals(cardThree.getSuitName()))
if(cardTwo.getSuitName().equals(cardThree.getSuitName()))
{
score = score + 5;
}
if(cardOne.getSuitName().equals(cardTwo.getSuitName().equals(cardThree.getSuitName())))
{
score = score + 5;
}
}
答案 0 :(得分:1)
尝试使用“和”运算符&&
:
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score = score + 5;
}
答案 1 :(得分:1)
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score += 5;
}
基本上,如果卡2与卡1相同而卡3与卡1相同,则卡2和卡3也是相同的。您可以将它们放在一个if
语句中,然后使用+=
答案 2 :(得分:1)
您可以使用流操作符或(||
)和(&&
);
答案 3 :(得分:0)
这样做:
Set<String> suits = new HashSet<>(Arrays.asList(
cardOne.getSuitName(),cardTwo.getSuitName(),cardThree.getSuitName()));
if(suits.size() == 1) score += 10;
else if(suits.size() == 2) score += 5;
答案 4 :(得分:0)
将分数视为整数数据类型,我们可以尝试比较卡值如下。
private void setScore()
{
int score = cardOne.setScore() + cardTwo.setScore() + cardThree.setScore();
// check if any two cards are same
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) ||
cardOne.getSuitName().equals(cardThree.getSuitName()) ||
cardTwo.getSuitName().equals(cardThree.getSuitName())){
score += 5;
// check if all three cards are same
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardTwo.getSuitName().equals(cardThree.getSuitName())){
score += 5;
}
}
}
希望上面的代码片段有帮助..