-1
私はJavaを使い始めたばかりで、2次元配列から要素をランダムに選択する方法を書いています。配列にない 'ランダムな'戻り値はありますか?
52枚のカード(4枚のスイートでは13枚)の2次元配列を与え、ランダムに4枚を選択して合計を返します。
プログラムはほとんどの場合うまく動作しているように見えますが、時にはカード「0ダイヤモンド」を返すことがあります。これは配列の要素ではありません。メソッドを渡したので、ここで何が起こっているのか分かりません。どのようにそれが時には0を返して、
int [][] cards = {{2,3,4,5,6,7,8,9,10,11,12,13,14},{2,3,4,5,6,7,8,9,10,11,12,13,14},
{2,3,4,5,6,7,8,9,10,11,12,13,14},{2,3,4,5,6,7,8,9,10,11,12,13,14}};
int num1 = randomPick(cards);
sum = sum+num1;
switch(num1){
case 11: System.out.print("Jack of "+ suite+", ");
break;
case 12: System.out.print("Queen of "+ suite+", ");
break;
case 13: System.out.print("King of "+ suite+", ");
break;
case 14: System.out.print("Ace of "+ suite+", ");
break;
default: System.out.print(num1+" of "+ suite+", ");
break;}
public static int randomPick(int[][] array){
int randrow = new Random().nextInt(array.length);
int randcol = new Random().nextInt(array[randrow].length);
switch (randrow){
// Each row corresponds to a different suite of cards
case 1:
suite= "spades";
break;
case 2:
suite = "hearts";
break;
case 3:
suite = "diamonds";
break;
case 0:
suite = "clubs";
break;
}
int element =array[randrow][randcol];
return(element);}
あなたは0を見ることができるようにメソッドに渡された配列の要素ではありません。
私は、下記の関連するコードのほとんどは再現しますか?
あなたの例のコードの一部が欠落している - あなたがコンパイルできない貼り付けたもの。 [MCVE](https://stackoverflow.com/help/mcve)を共有している場合は、コードを直接実行して問題を再現することができます。 – dimo414
カードには「スイート」ではなく「スーツ」があります。 –