字典GUY中的随机单词

时间:2014-01-07 03:23:32

标签: java user-interface random jlabel

我正在制作一个选择随机单词的游戏,用户必须在不到7个错误中找到它,如果他输了7个错误,如果他犯了少于7个错误,则会给出另一个单词并且他的错误是保持。最后得分。

我有一个txt文件字典,我不知道如何从中选择一个单词并将其放入变量中,然后将这个单词隐藏在JLabel中的 * 中< / p>

谢谢

1 个答案:

答案 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