1

如何对我的“甲板”阵列执行完美的随机播放操作?

我不知道如何将“deck”数组导入到我的 perfectShuffle 方法/类中(idk wtf 是不同的)

这不会编译,因为我的 perfectShuffle 找不到''deck''

我很确定你会看我的代码,然后说“你知道你在做什么吗?” 好吧,不,我不知道我在做什么,但是我通过为一副纸牌中的每张纸牌创建一个纸牌阵列,不知道我在做什么,我已经走了很远。

我正在努力寻找来自类/方法/对象/实例的流程以及它们如何交互。

非常感谢任何帮助或资源点。

public String[] Deck(){
    String[] deck = new String[52];

    //Populate Deck 2-10
    for (int i=0; i<52; i++){
        if (i<9){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Clubs");
                i++;
            }
        }
        if (12<i&&i<22){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Diamonds");
                i++;
            }
        }
        if (25<i&&i<35){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Hearts");
                i++;
            }
        }
        if (38<i&&i<48){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Spades");
                i++;
            }
        }
        else {
            deck[9]=("Jack of Clubs");
            deck[10]=("Queen of Clubs");
            deck[11]=("King of Clubs");
            deck[12]=("Ace of Clubs");

            deck[22]=("Jack of Diamonds");
            deck[23]=("Queen of Diamonds");
            deck[24]=("King of Diamonds");
            deck[25]=("Ace of Diamonds");

            deck[35]=("Jack of Hearts");
            deck[36]=("Queen of Hearts");
            deck[37]=("King of Hearts");
            deck[38]=("Ace of Hearts");

            deck[48]=("Jack of Spades");
            deck[49]=("Queen of Spades");
            deck[50]=("King of Spades");
            deck[51]=("Ace of Spades");
        }
    }
}
private void perfectShuffle(){
    Deck();
    for (int i=0; i<27; i++){
        deck[i]=deck[i+26];
    }
    for (int i=0; i<52; i++){
        System.out.println(deck[i]);
    }
}
4

1 回答 1

4

perfectShuffle无权访问锁定在Deck(). 您需要获取Deck返回的值,并充分利用它:

private void perfectShuffle(){
    String[] myDeck = Deck();
    for (int i=0; i<27; i++){
        myDeck[i]=myDeck[i+26];
    }
    for (int i=0; i<52; i++){
        System.out.println(myDeck[i]);
    }
}

同样,您需要Deck()实际返回该字符串数组,因为您已经声明了返回 a 的方法String[]

public String[] Deck(){
    String[] deck = new String[52];

    //Populate Deck 2-10
    for (int i=0; i<52; i++){
        // blah blah blah
    }

    return deck;
}
于 2012-10-30T04:06:19.953 回答