2016-04-01 4 views
0

私のコードのこの段階では、8から8までの数字のグリッドをランダムに1から8の範囲で印刷しようとしています。私は、2つのforループの乱数にfill arraylistの値を代入するのに苦労しています。これをどのように解決すればいいですか?forループから整数の配列リストに値を代入する

は、ここに私のコードです:

import java.util.*; // for Arraylist 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collection; 
import java.util.List; 
public class Game { 
static Scanner in = new Scanner(System.in); 
     int a1, a2, a3, a4, a5, a6, a7, a8; 
     int b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8; 
     int c1 ,c2 ,c3 ,c4 ,c5 ,c6 ,c7 ,c8; 
     int d1 ,d2 ,d3 ,d4 ,d5 ,d6 ,d7 ,d8; 
     int e1 ,e2 ,e3 ,e4 ,e5 ,e6 ,e7 ,e8; 
     int f1 ,f2 ,f3 ,f4 ,f5 ,f6 ,f7 ,f8; 
     int g1 ,g2 ,g3 ,g4 ,g5 ,g6 ,g7 ,g8; 
     int h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,h7 ,h8; 
    public int fill(ArrayList<Integer>ar) { 
     gui(); 
     int[] space = new int[] {a1, a2 ,a3 ,a4 ,a5 ,a6 ,a7 ,a8 , 
            b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8 , 
            c1 ,c2 ,c3 ,c4 ,c5 ,c6 ,c7 ,c8 , 
            d1 ,d2 ,d3 ,d4 ,d5 ,d6 ,d7 ,d8 , 
            e1 ,e2 ,e3 ,e4 ,e5 ,e6 ,e7 ,e8 , 
            f1 ,f2 ,f3 ,f4 ,f5 ,f6 ,f7 ,f8 , 
            g1 ,g2 ,g3 ,g4 ,g5 ,g6 ,g7 ,g8 , 
            h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,h7 ,h8 }; } 
public void gui() 
{System.out.println(a1+" "+a2+" "+a3+" "+a4+" "+a5+" "+a6+" "+a7+" "+a8); 
    System.out.println(b1+" "+b2+" "+b3+" "+b4+" "+b5+" "+b6+" "+b7+" "+b8); 
    System.out.println(c1+" "+c2+" "+c3+" "+c4+" "+c5+" "+c6+" "+c7+" "+c8); 
    System.out.println(d1+" "+d2+" "+d3+" "+d4+" "+d5+" "+d6+" "+d7+" "+d8); 
    System.out.println(e1+" "+e2+" "+e3+" "+e4+" "+e5+" "+e6+" "+e7+" "+e8); 
    System.out.println(f1+" "+f2+" "+f3+" "+f4+" "+f5+" "+f6+" "+f7+" "+f8); 
    System.out.println(g1+" "+g2+" "+g3+" "+g4+" "+g5+" "+g6+" "+g7+" "+g8); 
    System.out.println(h1+" "+h2+" "+h3+" "+h4+" "+h5+" "+h6+" "+h7+" "+h8); 
} 
public double num(ArrayList<String>ar){ 
int[] randomNumbers = new int[64]; 
for (int index = 0; index < ar.size(); index++) 
    { 
     randomNumbers[ index ] = (int) (Math.random()*8); 
     } 
     for (int index = 0; index < ar.size(); index++) 
    { 
     randomNumbers[ index ] = (int) (Math.random()*8); 
     randomNumbers[ index ] = system.out.println(space[index++]); 
     } 
    } 
    } 
+1

'fill'配列を' fill'のローカル変数として宣言しました。そのため、そのスコープはそのメソッドに限定されています。おそらくあなたはそれをフィールドとして宣言するつもりでしたか? (別として、64個の別々の変数を宣言するのは良い考えではないと思う...私はちょうど行列を持つことをお勧めします...) –

+1

このコードはコンパイルされません。 IDEを使用していますか? –

+0

はい、コードは、2番目のforループの過去の終了をコンパイルしません。 –

答えて

0

それはあなたのint型は[]空間配列は、お使いのfillメソッド内で宣言されているように見える、となどは、そのメソッドの外範囲ではありません。

範囲内にしたい場合は、クラスのフィールドとしてint []スペースを宣言することを検討してください。これは、fillメソッドで初期化することができます。

+0

どうすれば修正できるでしょうか? –

+0

@MatthewRomano "public class Game {"、 "int [] space;"の下の行を挿入してください。それはあなたのGameクラスのフィールドとなるようにスペースを宣言します。次に、fillメソッドでは、 "int []"を "space"の前から削除することができます。そうしないと、スペースを2回宣言します。 ただし、空白はfillが呼び出されるまで初期化されません。 –

+0

私はこれらの変更を加えましたが、エラーは "互換性のない型:voidをintに含めることはできません"というメッセージが表示されます。 "System.out.println(space [index ++]);}" –

関連する問題