我正在运行我的主要 class ,并且我想运行一个单独的 class 以洗牌数字,然后将洗牌后的数字返回到我的主要 class 。在我的混洗 class 中,我有return语句...但是现在我该怎么办?如何在主类中使用int数组的随机顺序?
这是我的洗牌课:
public class Shuffle {
public static int[] getShuffle() {
int[] cards = new int[52];
ArrayList<Integer> cards_objs = new ArrayList<Integer>();
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的新手(如您所知)
所有帮助将不胜感激,
-史蒂夫
编辑:
我发现我的问题是什么,我认为我没有清楚地说明我的问题是什么。但是,感谢大家的帮助,它为我提供了处理该项目的不同方法的想法。
最佳答案
我认为使用enum
可以更好地实现Card
Game。
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<Deck.Card> cards = new ArrayList<Deck.Card>();
static
{
for (Rank rank : Deck.Rank.values())
{
for (Type type : Deck.Type.values())
{
cards.add(DECK.new Card(rank, type));
}
}
}
List<Deck.Card> 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();
}
}