Hangman程序,仅使用递归

时间:2015-02-10 15:41:42

标签: java recursion

这是我目前为我的hangman程序所做的,其目标是将文本文档存储在数组中,并使用随机类来选择单词的下标。现在我被困在哪里离开这里

有什么想法吗?

public static void main(String []args) throws IOException
{
    ArrayList<String> list = new ArrayList<>();
    BufferedReader reader = new BufferedReader(new FileReader("words.txt"));

    System.out.println(list);
    list =  listReader(list, reader);
}

public static void listReader(ArrayList<String> list,BufferedReader reader)throws IOException
{
    String line = reader.readLine();

    if(line == null)
    {

        return;
    }
    else
    {
        list.add(line);
        listReader(list, reader);
    }
        reader.close();
}

我的输出应该是这样的

Try to guess my word, it has 7 letters.
--------------------
Guesses left: 12
Available letters: abcdefghijklmnopqrstuvwxyz
Please enter a letter: e
Letter found, word is: - - - - - - e

如果有人可以帮我设置或修复上面的递归方法(listreader),我会非常感激。

1 个答案:

答案 0 :(得分:0)

将您的方法listReader更改为:

您没有为每次递归调用重新创建reader对象,因此请从reader = new BufferedReader(new FileReader("words.txt"));方法中删除listReader行。

对于您的其他问题:

  • 显示所选的随机单词。

    使用Random类的nextInt方法作为random.nextInt(list.size()),它将为您提供(0 - listsize-1)之间的随机数,然后您可以使用该索引获取列表的值。

  • 接受来自用户的输入以检查并查看该字母是否在单词

    尝试使用Scanner类,从用户读取数据并使用String上的contains方法检查数据是否存在于字符串中。