0

10単語を含むランダムな文字列をテーブルから取得する方法を見つけようとしています。ゲームのハングマンを作成していますが、1 つの単語を 2 回使用したくありません。ゲームは5つの単語が選ばれるまで続きます。

良い解決策はありますか?これが現在の私のテーブルのランダム化方法です。

private String wordList[] = { "String1", "String2", ..... }
public void getRandomWord(){
    Random generator = new Random();
    int r = generator.nextInt(9);
    activeWord = wordList[r];
}

これを機能させようとしましたが、うまくいきませんでした:

ArrayList<String> usedWords= new ArrayList<String>();
public void getRandomWord(){
    Random generator = new Random();
    int r = generator.nextInt(9);
    if(addWord(wordList[r])){
        activeWord= wordList[r];
    }
}

private boolean addWord(String word) {
    for(String v : usedWords){
        if(!v.equals(word)){
            usedWords.add(word);
            return true;
        }
        else{
            getRandomWord();
        }
    }
    return false;   
}

私は反復を行ったと思いますが、それは必ずしも必要ではないと思います。

ブール値を持つ文字列テーブルを持つことを考えていました。したがって、単語の値が true の場合はそれを取得し、そうでない場合は、単語が見つかるまで続行します。

そのためにwhileループを使用できますか?

4

1 に答える 1

2

wordListをArrayListにすると、使用するたびにリストから単語を削除できます。そうすれば、可能な値のリストが縮小され、単語を2回選択するリスクがなくなります。

于 2012-04-18T17:40:02.577 に答える