【发布时间】:2015-01-18 21:06:25
【问题描述】:
我需要一些帮助来编码这些方法。每种方法都应该检查一组 5 张牌,存储为一个数组,在扑克中是否确定手牌,例如一对、两对、满屋等。这就是我目前所拥有的。此外,sort() 将卡片从小到大排序,按照梅花、方块、红心和黑桃的顺序排列。最后,对于括号中的任何格式问题,我深表歉意。谢谢。
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++){
}
}
这也是我最想提供帮助的地方。我的麻烦只是如何检查西装背后的想法。我知道你们没有告诉你西装价值的实际代码,但如果有人可以帮助我思考它的过程。
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++){
}
}
这应该是同花顺和同花顺的组合。但最后一个条件是 slot card[0]==10 中的卡。
【问题讨论】:
-
你所有的配对检查都是错误的。从 for 条件开始是错误的。您拥有它的方式将只检查 4 张卡。在 2 对中,假设您有 3、3、6、7、7,您的条件将失败。
-
请注意:您可能希望在您的
Card类上覆盖equals,因为在这里您没有将compareTo用于除相等检查之外的任何内容。
标签: java arrays function methods boolean