2017-03-14 8 views
-1

現在、私はDealまたはNo Deal Typeプログラムを作成しようとしていますが、始めにArraylistの値をシャッフルして、プレイヤーが配列リスト。しかし、同じ番号を入力してブリーフケースを2回続けて選択すると、2つの異なる値が表示されます。 arraylistが一度だけシャッフルされるように、どうすればいいですか?数字を入力するたびにではありませんか?arraylistを一度シャッフルする方法

public static void main(String[]args) { 


Collections.shuffle(array()); 
    for(int i = 27; i > 0; i--){ 
    System.out.println("Input the case number that you would like, the numbers are between 1 and 26"); 
    Scanner input = new Scanner(System.in); 

    int casenum = input.nextInt(); 
    System.out.println(array().get(casenum)); 


    } 

} 


public static ArrayList array(){ 
    ArrayList list = new ArrayList(); 
    list.add(001); 
    list.add(1); 
    list.add(5); 
    list.add(10); 
    list.add(25); 
    list.add(50); 
    list.add(75); 
    list.add(100); 
    list.add(200); 
    list.add(300); 
    list.add(400); 
    list.add(500); 
    list.add(750); 
    list.add(1000); 
    list.add(5000); 
    list.add(10000); 
    list.add(25000); 
    list.add(50000); 
    list.add(75000); 
    list.add(100000); 
    list.add(200000); 
    list.add(300000); 
    list.add(400000); 
    list.add(500000); 
    list.add(750000); 
    list.add(1000000); 




    return list; 
+2

'Collections.shuffle'? – MadProgrammer

+0

推測されたブリーフケースはどのように取り除かれていますか?リストを縮小している場合、インデックスはそれに応じて変更されています –

+0

私はまだその部分をコーディングしていません。しかし、私はちょうどlist.removeを使用しています – SkinnySpangler

答えて

2
public static void main(String[]args) { 




    ArrayList myArray = array(); 
Collections.shuffle(myArray); 
     for(int i = 27; i > 0; i--){ 
     System.out.println("Input the case number that you would like, the numbers are between 1 and 26"); 
     Scanner input = new Scanner(System.in); 

    int casenum = input.nextInt(); 
    System.out.println(myArray.get(casenum)); 


    } 

} 


public static ArrayList array(){ 
    ArrayList list = new ArrayList(); 
    list.add(001); 
    list.add(1); 
    list.add(5); 
    list.add(10); 
    list.add(25); 
    list.add(50); 
    list.add(75); 
    list.add(100); 
    list.add(200); 
    list.add(300); 
    list.add(400); 
    list.add(500); 
    list.add(750); 
    list.add(1000); 
    list.add(5000); 
    list.add(10000); 
    list.add(25000); 
    list.add(50000); 
    list.add(75000); 
    list.add(100000); 
    list.add(200000); 
    list.add(300000); 
    list.add(400000); 
    list.add(500000); 
    list.add(750000); 
    list.add(1000000); 




    return list; 

あなたが(配列を呼び出すたびに)新しい配列を作成している。これでコード を取得することは、一度作成作成時に、それをシャッフルして、あなたの入力するたびにあなたの番号が同じ配列を呼び出す必要があります

+0

バイナリフラグとして 'int'を使うのはなぜですか? – Kon

+0

true、私は – Goran

+0

を編集します。私がそれを行うたびに、選択された番号がインデックスに対応する番号になります。 – SkinnySpangler

関連する問題