gpt4 book ai didi

java - 为什么我的 isFullHouse() 方法也接受简单的三类?

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:30 24 4
gpt4 key购买 nike

我的满屋方法有问题。我认为这就像检查三个同类和一对一样简单。但是根据我目前的代码,我得到了一个只有三个同类的满堂彩。 isFullHouse() isThreeOfAKind() 和 isPair() 的代码如下,感谢您的帮助!

 public boolean isPair() {
Pips[] values = new Pips[5];
int count =0;

//Put each cards numeric value into array
for(int i = 0; i < cards.length; i++){
values[i] = cards[i].getPip();
}

//Loop through the values. Compare each value to all values
//If exactly two matches are made - return true
for(int x = 1; x < values.length; x++){
for(int y = 0; y < x; y++){
if(values[x].equals(values[y])) count++;
}
if (count == 1) return true;
count = 0;
}
return false;
}

public boolean isThreeOfAKind() {
Pips[] values = new Pips[5];
int counter = 0;

for(int i = 0; i < cards.length; i++){
values[i] = cards[i].getPip();
}

//Same process as isPair(), except return true for 3 matches
for(int x = 2; x < values.length; x++){
for(int y = 0; y < x; y++){
if(values[x].equals(values[y]))
counter++;
}
if(counter == 2) return true;
counter = 0;
}

return false;
}

public boolean isFullHouse(){
if(isThreeOfAKind() && isPair())
return true;
return false;
}

最佳答案

检查以确保这对与同类中的三个相比具有不同的等级。否则,您的 isPair() 函数会找到与三张相同的牌。可能是这样的:

public boolean isFullHouse(){
int three = isThreeOfAKind();
int pair = isPair();
if (three != 0 && pair != 0 && three != pair) {
return true;
}
return false;
}

(我使用了 int,但如果您愿意,您可以更改为使用您的 Pips 类型。)

关于java - 为什么我的 isFullHouse() 方法也接受简单的三类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3858019/

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