配列をシャッフルする方法について質問があります。背景は次のとおりです
。4*4の正方形に配置され、1から8までの数字のペアでラベル付けされた16枚のカードを使用するメモリマッチングゲームを作成します。
現在、私がする必要があるのは、これらのカードを初期化し、これらのカードをシャッフルすることです。
そして今、私が考えることができるのは、1から8までの変数Rankを含むCardクラスを作成し、次に、新しいクラス(matchingGame)(好きなもの)に名前を付け、新しい静的メソッドshuffle()を作成することです。
しかし、私はこのステップで立ち往生しています。
私の最初の質問は、これらの16枚のカード(8ペア)を初期化する方法ですか?
(私のコードは効率的な方法ではないと思います)。
私の2番目の質問は、初期化後にカードをシャッフルする方法です。
私のコードは次のとおりです。
public class Card
{
private int rank;
public Card(int iniRank)
{
switch (iniRank)
{
case 1:
rank =1;
break;
case 2:
rank =2;
break;
case 3:
rank =3;
break;
case 4:
rank =4;
break;
case 5:
rank =5;
break;
case 6:
rank =6;
break;
case 7:
rank =7;
break;
case 8:
rank =8;
break;
}
}
public int getRank()
{
return rank;
}
}
public static void initialize(Card[] cards)
{
for (int i=0;i<2;i++)
{
cards[i] = new Card(1);
}
for (int i=2;i<4;i++)
{
cards[i] = new Card(2);
}
....
}
私の前の質問をみんなに感謝します!
同じ背景でもう1つ質問があります。良いアドバイスとして、1D配列をシャッフルする方法を知っていますか?
しかし、2D配列をシャッフルする方法は?明らかに、私は使用できません
List<Card> newcards = Arrays.asList(cards)
今すぐリストに変換してください。
助けてくれてありがとう