2014-01-07 70 views
-3

我正在製作一個遊戲,選擇一個隨機單詞並且用戶必須在少於7個錯誤中找到它,如果他犯了7個失敗的錯誤,如果他犯的錯誤少於7個錯誤,另一個單詞被給予並且他的錯誤被保留。最後給出分數。字典GUI中的隨機單詞

我有一個txt文件dictionnary,我wan't知道如何從中選擇一個單詞,並把它放在一個變量,則表明這個詞*隱藏在恆星在JLabel

謝謝你

+0

我建議使用隨機數發生器。 –

+0

你是什麼意思? – FrankelStein

+0

你還會如何選擇一個「隨機」字? (當然,訣竅在於找到一個完整的單詞,而不是從一個單詞開始,因爲這是隨機數給你帶來的地方,這就需要你將思考的肌肉發揮一點。) –

回答

1

@HotLicks的意思是使用Random類或Math.random(),它們都可以創建一個隨機數。假設你想創建一個介於0和99之間的隨機數。你會這樣做

Random random = new Random(); 
int randIndex random.nextInt(100); 

以上所做的是給你一個隨機指數。我們將使用這個隨機索引來選擇一個單詞。

不能真正得到這組字,你需要讓它們進入某種數據結構,所以你不必一直讀取文件。比方說,你的文件是這樣的,每一個字在自己的行

Abba 
Zabba 
Youre 
My 
Only 
Friend 

你想要做什麼是那些話存入像List的數據結構。爲了你需要逐行讀取文件中的行,同時加入的每一行List

List<String> wordList = new ArrayList<String>(); 

try { 
    BufferedReader br = new BufferedReader(new FileReader("words.txt")); 
    String line; 
    while((line = br.readLine().trim()) != null) { 
     wordList.add(line); 
    } 
} catch (IOException ex){ 
    ex.printStackTrace(); 
} 

現在wordList擁有所有從你的文件的話。 randIndex變量保存列表中的隨機索引。所以,你可以做

String randWord = wordList.get(randIndex); 

當然,雖然在這個答案的改變第一段代碼,你需要知道列表的大小,然後才能決定隨機數應該做的人數達。所以,你填充列表後,你會做這樣的事情

Random random = new Random(); 
int randIndex = random.netInt(wordList.size()); 

所以每次你需要一個新字時,就產生一個新的隨機數,並使用該號碼從列表中該索引處得到一個字。


請參閱Basic I/O trail以獲得更多關於閱讀文件的幫助。

+0

Peeskillet非常感謝你!這正是我所需要的,真的很有幫助,我對I/O基礎知識一無所知,所以我試圖理解BufferedReader,它做到了魔術!我仍然不知道爲什麼這被選爲offtopic並且有-1,謝謝你,你是最棒的 – FrankelStein