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 に答える