0
public void createDeck() {
    k=0;
    cards=new Card[52];

    for (i=0;i<4;i++) {
        for (j=0;j<13;j++){
            cards[k]=new Card(i,j);
            k++;                
        }
    }
}

public void shuffleDeck(int m){
    Random random = new Random(); 
    Card cardTemp;
    for(i=0;i<m;i++){
        k=random.nextInt(52);
        cardTemp=cards[i%52];
        cards[i%52]=cards[(i+k)%52];
        cards[(i+k)%52]=cardTemp;
    }                   
}

你好。我想把 i 和 j 放在

cards[k]=new Card(i,j);

因为我想通过使用这个 i 和 j 来显示西装的等级:

    public Card(int suit,int rank){
        this.rank=rank;
        this.suit=suit;
    }

  private final static String[] suits = { "Hearts", "Spades", "Diamonds", "Clubs" };

   private final static String[] ranks  = { "Ace", "2", "3", "4", "5", "6",
       "7", "8", "9", "10", "Jack", "Queen", "King" };

在另一个班级,

deck=new Deck();
deck.createDeck();
deck.shuffleDeck(111);

我应该使用另一个数组吗?我真的很困惑。我想给屏幕,例如洗牌后的王牌红心。

4

1 回答 1

4

不清楚你在问什么,但我猜你想要的是当你从洗好的牌组中抽一张牌时,你就能看到它的等级和花色。对?

那么答案是在Card类中添加 2 个方法:

public int getSuit()
{
   return suit;
}

public int getRank()
{
   return rank;
}

然后,当你抽牌时:

Card c = cards[k];
int cSuit = c.getSuit();
int cRank = c.getRank();
于 2013-08-21T08:50:46.393 回答