2012-04-10 9 views
-1

こんにちは私はJavaを使い慣れていません。私は単語検索パズルプログラムを作成するのが難しいです。私はパズルに入力することができるようにユーザーがArrayListの単語を入力するようにしようとしていますが、私は文字列の配列を入力するとエラーが表示されます誰も助けてください?私のWordSearchPuzzleプログラムにArrayListを入力するのに助けが必要です

import java.io.* ; 
import java.util.ArrayList ; 
public class WordSearchPuzzle 
{ 
    private char[][] puzzle ; 
    private ArrayList<String> puzzleWords ; 
    private int letterCount = 0 ; 
    private int gridDimensions; 

    public WordSearchPuzzle(ArrayList<String> userSpecifiedWords) 
    { 
     this.puzzleWords = userSpecifiedWords ; 

    } 

    private void createPuzzleGrid() 
    { 
     int i; 
     for(i = 0; i < puzzleWords.size() ; i++){ 
      letterCount = puzzleWords.size() + letterCount ; 
     } 
     gridDimensions = letterCount * 2; 
     puzzle = new char[gridDimensions][gridDimensions] ; 
    } 

    private void generateWordSearchPuzzle() 
    { 

    } 

    public void fillPuzzle() 
    { 
     int i, j, r; 
     for (i = 0; i < this.gridDimensions; i++) 
      for (j = 0; j < this.gridDimensions; j++) 
       if (puzzle[i][j] == ' ') { 
        r = (int) (Math.random() * letterCount); 
        puzzle[i][j] = letterCount.charAt(r); 
     } 
    } 

    public void fill() 
    { 
     int i, j, gridDimensions, r, c; 
     boolean added; 
     this.clear(); 
     for (i = 0; i < WordSearch.words.size(); i++) { 
      ws = (WSWord) WordSearch.words.elementAt(i); 
      row = (int) (Math.random() * this.rows); 
      col = (int) (Math.random() * this.cols); 
      added = false; 
     } 
+2

完全なコードと実行する際に表示されるエラーを記載してください。 – mcfinnigan

+0

パズルにロードする単語の配列を入力する必要がありますが、{"hello"、 "bye"}のような文字列を入力するとこのエラーが発生し続けます。このエラーが表示されます:エラー:java.utilの不正なinitalizer。 ArrayList user1323808

+0

'WordSearchPuzzle'コンストラクタを呼び出すコードを投稿してください。私の推測では、リストの代わりにString []を渡そうとしています。 – Qwerky

答えて

0

文字列の配列としてパズルを参照している場合、それはcharの2次元配列です。おそらくあなたが必要です

private String puzzle[]; 

残念ながら、特定のコード例から、あなたが問題を抱えていることはあまり明確ではありません。同様の質問から :

+0

パズルにロードする単語の配列を入力する必要がありますが、{"hello"、 "bye "}このエラーが表示されます。エラー:java.util.ArrayList の不正なinitalizer – user1323808

+0

いいえ、配列を持つArrayListを初期化することはできません。次のようなものを試すことができます:this.puzzleWords = java.util.Arrays.asList(yourStringArray); – maksimov

0

あなただけのArrayListとその内容をコピーするために=を使用することはできませんclone(): ArrayList.clone() I thought does a shallow copy

があなたのケースに適応:

this.puzzleWords = new ArrayList(userSpecifiedWords) 
+0

私はこれが問題ではないと思います。彼はそれをすることは許されていますが、もちろんuserSpecifiedWordsを変更するとpuzzleWords配列が同じ配列を指しているので変更されます。 – giorashc

+0

私がタイプしたものは、別のメモリ位置にクローンを作成しました。彼が上に掲示したものは、ストリングの内容をコピーしません。 –

+0

申し訳ありませんが、私のコードが変更されました。私は間違って入力しました。 – user1323808

0

初期puzzleWordsを。

private ArrayList<String> puzzleWords = new ArrayList<String>(); 
関連する問題