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ループを使用できますか?