gpt4 book ai didi

java - 如何创建一副随机卡牌?

转载 作者:行者123 更新时间:2023-12-02 08:41:37 25 4
gpt4 key购买 nike

我需要使用两个字符串创建一副牌:“HSCD”和“A2345678910JQK”。

public class Deck {
Random random=new Random();
Queue cards=new Queue(112);
String suits="HSCD";
String rands="A2345678910JQK";

public Deck() {
for (int i = 0; i < suits.length(); i++) {
for (int j = 0; j < rands.length(); j++) {
char suit = suits.charAt(random.nextInt(suits.length()));
char rand = rands.charAt(random.nextInt(rands.length()));
if (rand == '1' || rand == '0') {
String s = Integer.toString(10);
cards.enqueue(new Card(suit, s));
} else {
String s1 = Character.toString(rand);
cards.enqueue(new Card(suit, s1));
}
}
}
}
public void display(){
for (int i = 0; i < cards.size(); i++) {
System.out.print(cards.peek());
cards.enqueue(cards.dequeue());
}
}

public Queue getCards() {
return cards;
}

public void setCards(Queue cards) {
this.cards = cards;
}

public String getSuits() {
return suits;
}

public void setSuits(String suits) {
this.suits = suits;
}

public String getRands() {
return rands;
}

public void setRands(String rands) {
this.rands = rands;
}}

我有牌组和卡牌类(class)。

public class Card {

private char rand;
private String suit;

public Card(char rand, String suit) {
this.rand = rand;
this.suit = suit;
}

public Card(){}

public char getRand() {
return rand;
}

public void setRand(char rand) {
this.rand = rand;
}

public String getSuit() {
return suit;
}

public void setSuit(String suit) {
this.suit = suit;
}

public String toString(){
return "\t"+rand + suit;
}}

但我无法解决每个花色必须有 13 兰特的问题。在我的程序中,我的套牌是随机创建的。我的套牌必须洗牌。我不能使用列表或数组结构,因为老师告诉我们的:)。你能帮我吗?

最佳答案

  1. 您要为每种花色创建 14 张牌,而不是 13 张:您要创建 10 两次。使用 01rands 中删除。

  2. 如果您先创建卡片,然后洗牌,会更容易。

卡牌的创建应该与您已经在做的事情类似,减去随机化 - 只需按顺序查看花色和值即可:

for each suit:
for each value:
sortedCards.add(new Card(suit, value));

然后,按如下方式洗牌:

while (sortedCards is not empty):
shuffledCards.add(sortedCards.get(random.nextInt(sortedCards.size())))

关于java - 如何创建一副随机卡牌?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61353377/

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