gpt4 book ai didi

java - 如何为扑克评估器打乱两个数组

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

我正在开发一个扑克程序。我在弄清楚如何洗牌时遇到一些问题。我必须使用数组。我无法使用枚举或列表。我知道有更好的方法来制作这个程序,但重点是理解数组。

我在弄清楚如何洗牌时遇到一些问题。我试图让这个过程尽可能简单,所以我有一个类来获取这副牌并洗牌。

import java.util.Arrays;
import java.util.Random;

public class Card
{


String[] suits = { "Spades", "Clubs", "Hearts", "Diamonds" };
String[] values = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"};

public Card()
{

}

public void getCards()
{
for(int indexSuit = 0; indexSuit < suits.length; indexSuit++)
{

String suit = suits[indexSuit];
System.out.print(suit + " ");

for(int indexType = 0; indexType < values.length; indexType++)
{
String type = values[indexType];
System.out.print(type + " ");
}
}

}

public void shuffle(String[] suit, String[] value)
{
Random rndSuits = new Random();
Random rndType = new Random();

for(int indexSuit = suits.length - 1; indexSuit > 0; indexSuit--)
{
int index = rndSuits.nextInt(indexSuit + 1);

String temp = suits[indexSuit];
suits[indexSuit] = suit[index];
suit[index] = temp;

System.out.print(temp);

for(int indexType = values.length -1; indexType > 0; indexType--)
{
int index2 = rndType.nextInt(indexType + 1);

String temp2 = values[indexType];
values[indexType] = value[index2];
value[index2] = temp2;

System.out.print(temp2);
}
}
}

public void deal()
{

}
}

这是我的主要内容:

public class FiveCardPoker 
{

public static void main(String[] args){
Card timsCards = new Card();

timsCards.getCards();
timsCards.shuffle(args, args);

}

}

我试图根据我在这里发现的另一个问题编写洗牌方法,但它仅适用于单个数组。我不确定 shuffle 方法的逻辑是否正确。我也不太确定如何在我的主要方法中调用它。

当我调用 timsCards.shuffle 时,如何将数组从 Card 类获取到 Main 类?

编辑:所以我尝试像这样编辑它,但它似乎没有做任何事情。

public void shuffle()
{
Collections.shuffle(Arrays.asList(suits));
Collections.shuffle(Arrays.asList(values));
System.out.println(Arrays.toString(values) + " of " + Arrays.toString(suits));
}

最佳答案

我能想到的理想方法是,您可以从这些数组中创建一些Collection并使用

Collections.shuffle() 方法。

代码-

 String[] suits = {"Spades", "Clubs", "Hearts", "Diamonds"};
List<String> list = Arrays.asList(suits);
Collections.shuffle(list);
System.out.println(list); //Prints shuffled list

Javadoc

关于java - 如何为扑克评估器打乱两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24811003/

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