2012-04-10 1 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의 불법 인라이 나이저. ArrayList user1323808

+0

'WordSearchPuzzle' 생성자를 호출하는 코드를 게시하십시오. 내 생각 엔 당신이리스트 대신에'String []'을 전달하려고하는 것입니다. – Qwerky

답변

0

문자열 배열로 사용하는 퍼즐을 말하는 경우 2 차원 배열의 char입니다. 아마도 필요한 것

private String puzzle[]; 

불행히도 주어진 코드 예제에서 정확히 어떤 문제가 있는지 명확하지 않습니다. 비슷한 질문에서 :

+0

내 퍼즐에로드 할 단어 배열을 입력해야하지만 { "hello", "bye"와 같은 문자열을 입력하면이 오류가 계속 발생합니다. "}이 오류가 발생합니다 : 오류 : java.util.ArrayList 에 대한 잘못된 초기화 도구 – 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>(); 
관련 문제