10文字を含むランダムな文字列をテーブルから取り出す方法を見つけようとしています。私はゲームのハングマンを作成していますが、私は単語を二度は欲しません。ゲームは5ワードが選ばれるまで続く。テーブルからランダムな文字列を取得しますが、1回だけ返します
良い解決策はありますか?これは今の私のテーブルのためのランダム化メソッドです。
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;
}
私は私が繰り返しを作ったと思うが、私はnessasaryないthatsの推測しています。
私はブール値の文字列テーブルを持つことを考えてきました。もし単語の価値が真実ならば、それをつかまえて、もしそうでなければ、私は言葉を見つけるまで病気を続けるでしょう。
私はwhileループを使用していますか?
事前にシャッフルして、順番に選択するだけです。ルックアップはありません。ブーリアンはなく、衝突はありません。 Fisher-Yatesなどのアルゴリズムを調べてください。 –