gpt4 book ai didi

java - 数组的 boolean 方法,编码问题

转载 作者:行者123 更新时间:2023-12-01 12:15:24 25 4
gpt4 key购买 nike

我需要一些帮助来编码这些方法。每个方法都应该检查以数组形式存储的一组 5 张牌是否是扑克牌中的确定牌,例如一对、两对、满堂红等。这是我到目前为止所拥有的。另外,sort() 将牌从小到大排序,顺序为梅花、方 block 、红心、黑桃。最后,对于括号中的任何格式问题,我深表歉意。谢谢。

private boolean isOnePair(){//checks if one pair exists---Done
sort();
for(int i=0;i<cards.length-2;i++){
if(cards[i].compareTo(cards[i+1])==0){
return true;
}
else{
return false;
}
}
}

理论上,这会检查手中是否存在一对。我相信它已经完成并且有意义,但如果没有,请告诉我原因。

private boolean isTwoPair(){//check if two pair exists---
sort();
for(int i=0;i<cards.length-2;i++){
if(cards[i].compareTo(cards[i+1])==0){
return true;
}
}else{
return false;
}
}

这是我需要帮助的地方。它需要检查是否有两个不同的对。我假设我需要像在 isOnePair 中那样检查一些东西。另外,由于四同在技术上(在现实生活中,而不是卡牌术语)被视为两对,这会是一个问题吗?

private boolean isThreeOfAKind(){//check if three of a kind---Done
sort();
for(int i=0;i<cards.length-3;i++){
if((cards[i].compareTo(cards[i+1])==0)
&&(cards[i+1].compareTo(cards[i+2])==0)){
return true;
}else{
return false;
}
}
}

这会检查一张卡是否有三种。我认为这很好

private boolean isStraight(){//check if all in a row---Done
sort();
for(int i=0;i<cards.length-1;i++){
if(cards[i]<cards[i+1]&&()cards[i+1]-cards[i])==1)){
return true;
}else{
return false;
}
}
}

这会检查牌是否是顺子。因此它们按数字顺序排列,因为每张卡之间的差异必须为 1。

private boolean isFlush(){//check if all have same suit---
sort();
for(int i=0;i<cards.length-1;i++){
}
}

这也是我最想提供帮助的地方。我的麻烦只是如何检查西装背后的想法。我知道你们没有实际的代码来告诉您花色的值(value),但是如果有人可以帮助我思考它的过程。

private boolean isFourKind(){//check if four of a kind---Done
sort();
for(int i=0;i<cards.length-4;i++){
if((cards[i].compareTo(cards[i+1])==0)
&&(cards[i+1].compareTo(cards[i+2])==0)
&&(cards[i+2].compareTo(cards[i+3])==0)){
return true;
}else{
return false;
}
}
}

检查四个同类。应该一切都好。

private boolean isRoyalFlush(){//check if from 10-Ace and All of same suit---
sort();
for(int i=0;i<cards.length-1;i++){
}
}

这应该是顺子和同花的组合。但最后一个条件是槽卡[0]中的卡==10。

最佳答案

要检查是否有两对,只需创建一个计数器,每次找到一对时该计数器都会递增 - 而不是立即返回 true。如果您的计数器达到 2,您将返回 true。

此外,您对两对和四对相似的担心都应该在这些方法之外处理。例如,首先检查您是否拥有最具限制性(或最高点)的牌,只有在没有时才检查下一个限制性的牌。

最后,如果 Card 类没有可见的花色变量(或返回花色的 getter 函数),则无法对此进行编程。一旦你有了这个,你就可以很容易地检查同花、同花+顺子等。实现这个之后,它应该看起来像下面这样

int suit = cards[0].getSuit();
for (int i = 1; i < cards.length; ++i) {
if (suit != cards[i].getSuit()) // checks to see if you have a card of a different suit
return false;
}
return true; // suits of all cards are the same

PS:不太了解扑克规则。顺子可以由不同花色的牌组成吗?

关于java - 数组的 boolean 方法,编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27049172/

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