gpt4 book ai didi

java - 我对如何将 "ranks"添加到我的 DeckOfCards 实验室感到困惑

转载 作者:行者123 更新时间:2023-11-30 06:18:47 24 4
gpt4 key购买 nike

大家,我正在尝试添加一个名为ranks的数组,其中包含卡片的等级,例如1的等级为1,而A的等级为11或1。我已经制作了一个面数组和花色数组,这是我所需要的是ranks,我对如何将其实际添加到最后打印的牌组数组中感到困惑。

public class DeckOfCards{
public static void main(String[] args) {
String[] s = {
"Clubs", "Diamonds", "Hearts", "Spades"
};

String[] face = {
"2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace"
};
int n = s.length * face.length;
String[] deck = new String[n];
for (int i = 0; i < face.length; i++) {
for (int j = 0; j < s.length; j++) {
deck[s.length*i + j] = face[i] + ", " + s[j];
}
}
for (int i = 0; i < n; i++) {
int r = i + (int) (Math.random() * (n-i));
String temp = deck[r];
deck[r] = deck[i];
deck[i] = temp;
}
for (int i = 0; i < n; i++) {
System.out.println(deck[i]);
}
}

}

最佳答案

您可以创建一个 Card 类,然后将其添加到卡片数组列表中。该类可以封装每张卡牌的Rank、Suit、Face信息。

class Card {
private ArrayList≤Integer≥ rank = new ArrayList<>();
private String suit;
private String face;

public Card(int newRank, String newSuit, String newFace){
this.rank.add(newRank);
this.suit = newSuit;
this.face = newFace;
}
//additional methods, getters/setters.
}

您可以通过创建卡片数组列表来填充您的牌组。

Arraylist<Card> deck = new ArrayList<>();

然后通过迭代数组将其添加到您的牌组中。

for(int j = 0; j < suitArray.length; j++){
for(int k = 0; k < faceArray.length; k++){
deck.add(new Card(k, suitArray[j], faceArray[k]));
}
}

这仅适用于增量排名,即 ACE = 11、King = 10 .. ONE = 1。

如果您需要不同的排名权重,您可以尝试在填充牌组后检查您想要分配额外权重的卡。

for(Card c : deck){
if (c.getName.equals("ACE"))
c.addRank(11);
}
}

关于java - 我对如何将 "ranks"添加到我的 DeckOfCards 实验室感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48614709/

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