我正在运行主类,我想运行一个单独的类来对数字进行混洗,然后将经过混洗的数字返回到我的主类中.在我的混洗课程中,我有return语句…但是现在我该怎么办?如何在主类中使用int数组的随机顺序?
这是我的洗牌课:
public class Shuffle {
public static int[] getShuffle() {
int[] cards = new int[52];
ArrayList cards_objs = new ArrayList();
for (int i = 0; i < cards.length; i++) {
cards_objs.add(i);
}
Collections.shuffle(cards_objs);
for (int i = 0; i < cards.length; i++) {
cards[i] = cards_objs.get(i);
}
return cards;
}
}
我正在打纸牌游戏(如果你不知道的话);
我想使用这种混洗类,以便对卡片进行混洗……但没有卡片出现过一次.
当我归还卡片时,如何在游戏类中使用它们?
例如,如果数组中的第一个数字为1,则卡片为俱乐部Ace,
如果数字为2,则卡片为钻石A.等等…
抱歉,我没有发布足够的信息…我是Java新手(如您所知)
所有帮助将不胜感激,
-史蒂夫
编辑:
我发现我的问题是什么,我认为我没有清楚地说明我的问题是什么.尽管如此,感谢大家的帮助,它为我提供了处理该项目的不同方法的想法.
最佳答案
我认为使用枚举可以更好地实现纸牌游戏.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// This is just sample example and it is just to show an approach. I had not enough time to make code perfect but it works fine.
public enum Deck
{
DECK;
enum Rank
{
DEUCE(2), THREE(3), FOUR(4), FIVE(5), SIX(6),
SEVEN(7), EIGHT(8), NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10), ACE(11);
Rank(int rank)
{
this.rank = rank;
}
private final int rank;
}
enum Type
{
SPADES,
HEARTS,
DIAMONDS,
CLUBS;
}
class Card
{
private final Rank rank;
private final Type type;
Card(Rank rank, Type type)
{
this.rank = rank;
this.type = type;
}
@Override
public String toString()
{
return type.name() + rank.name();
}
}
static List cards = new ArrayList();
static
{
for (Rank rank : Deck.Rank.values())
{
for (Type type : Deck.Type.values())
{
cards.add(DECK.new Card(rank, type));
}
}
}
List shuffle()
{
Collections.shuffle(cards);
System.out.println(cards);
System.out.println(cards.size());
return Collections.unmodifiableList(cards);
}
public static void main(String[] args)
{
DECK.shuffle();
}
}