10 단어를 포함하여 테이블에서 임의의 문자열을 가져올 수있는 방법을 찾으려고합니다. 나는 게임 교수형 집행관을 만들고 있지만 한 번만 두 번하는 것을 원하지 않습니다. 게임은 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;
}
나는 반복을했습니다 생각하지만, 내가 추측하고있어 높이는 필요한되지 이잖아.
나는 부울 값을 가진 문자열 테이블을 가지고 있다고 생각해 왔습니다. 단어의 가치가 사실이라면, 그것을 잡아서, 그렇지 않다면, 내가 말을 찾을 때까지 계속 병 들어라.
while 루프를 사용할 수 있습니까?
미리 셔플 한 다음 순서대로 선택하면됩니다. 검색, 부울 없음, 충돌 없음. 피셔 - 예이츠 (Fisher-Yates)와 같은 알고리즘을 살펴보십시오. –