gpt4 book ai didi

java - 德州扑克识别一对

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:12:56 25 4
gpt4 key购买 nike

我的程序只有在首先检查一对后才能识别一对。当首先检查一对时,它发现没问题。但是当我先检查两对然后检查一对时,它没有找到它。任何帮助将不胜感激。

package card.game.simulator;

import java.util.ArrayList;

public class RankingUtility {
private RankingEnum rank;

public String getRankOfHand(ArrayList<Card> hand) {
System.out.printf("%s\n", hand.toString());
ArrayList<Card> rankingCards = getTwoPair(hand);
if(rankingCards != null) {
return "Two Pair!";
}
System.out.printf("%s\n", hand.toString());
rankingCards = getOnePair(hand);
if(rankingCards != null) {
return "One Pair!";
}
System.out.printf("%s\n", hand.toString());
return "You got nuthin...";
}

public boolean isSameSuit(ArrayList<Card> hand) {
CardSuitEnum suit = hand.get(0).getSuit();
for(Card card : hand) {
if(card.getSuit() != suit) {
return false;
}
}
return true;
}

public ArrayList<Card> checkPair(ArrayList<Card> hand) {
ArrayList<Card> checkedPair = new ArrayList<>();
for(Card card1 : hand) {
checkedPair.add(card1);
for(Card card2 : hand) {
if(!card1.equals(card2) && card1.getFace().equals(card2.getFace())) {
checkedPair.add(card2);
return checkedPair;
}
}
checkedPair.clear();
}
return null;
}

public ArrayList<Card> getTwoPair(ArrayList<Card> hand) {
ArrayList<Card> twoPair = new ArrayList<>();
ArrayList<Card> checkedPair = checkPair(hand);
if(checkedPair != null) {
twoPair.addAll(checkedPair);
hand.removeAll(checkedPair);
}
checkedPair = checkPair(hand);
if(checkedPair != null) {
twoPair.addAll(checkedPair);
return twoPair;
}
return null;
}

public ArrayList<Card> getOnePair(ArrayList<Card> hand) {
return checkPair(hand);
}
}

最佳答案

checkTwoPair 中,您正在执行 hand.removeAll()。这是将其从底层 ArrayList 中移除。这就是您之后找不到它的原因。

关于java - 德州扑克识别一对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447504/

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