【问题标题】:[JAVA]How to create a Ranking System then saving it to a .txt file?[JAVA]如何创建排名系统,然后将其保存为 .txt 文件?
【发布时间】:2015-07-02 18:35:45
【问题描述】:

所以,我有一个“记忆游戏”,你可以输入你的名字,选择难度(4x4 或 6x6 游戏)然后开始游戏。 当你点击开始时,会弹出一个新的面板,游戏就会开始。

按钮将是随机的,您每犯一个错误,您将失去 2 分,而对于每个正确的组合,您将获得 10 分。 最后或者如果您点击退出按钮,会弹出一条消息,说明玩家的姓名、他尝试了多少次(点击了 2 个不同的按钮)以及他有多少积分。然后游戏结束并且不保存玩家的分数。

现在,我的问题是,我不知道如何在我的代码中实现排名系统。这将是一些基本的事情,例如,比较所有分数并将它们重新排列为得分最高的分数,依此类推。

因此,根据我的研究,我需要一个 Save 方法,当有人完成游戏时,它会将他们的分数保存在 .txt 文件中,还需要一个 Array 方法,将分数从最佳到最差排列。

这是整个代码;

http://pastebin.com/6Wtiju7z

private void mostrarResumoJogo() { 
    resumoJogo = "Jogador: " + objJogadorJogada.getNome() + " " +
            "Pontos: " + objJogadorJogada.getPontos() + " " +
            "Quantidade de tentativas: " + qtdeTentativas;

    JOptionPane.showMessageDialog( null, "" + resumoJogo, "Resumo do Jogo",
            JOptionPane.INFORMATION_MESSAGE ); 

    BufferedWriter writer = null;
    try {
        writer = new BufferedWriter( new FileWriter("Ranking.txt") );
        writer.write(resumoJogo);
    }
    catch ( IOException e) { }
    finally {
        try {
            if (writer != null)
                writer.close( );
        }
        catch ( IOException e) { }
    }

    setVisible( false );
}

问题是文件总是被新的 .txt 覆盖 我已经尝试创建一个类型文件属性,这样他就不会总是创建另一个 .txt 但没有成功。

这是我需要对这段代码做的最后一件事,但我似乎无法弄清楚,请帮忙。

【问题讨论】:

    标签: java file memory ranking


    【解决方案1】:

    问题是文件总是被新的 .txt 覆盖

    问题来了

    writer = new BufferedWriter( new FileWriter( "Ranking.txt"));
    

    每次调用new FileWriter( "Ranking.txt") 时,它都会创建新的空文件。如果您想向现有文件添加更多数据,您需要通过

    以追加模式打开它
    writer = new BufferedWriter( new FileWriter( "Ranking.txt", true));
    //                                           add this part -^^^^ 
    

    【讨论】:

      【解决方案2】:

      这可能就是你要找的东西

      https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String,%20boolean)

      只需将 APPEND 参数指定为 true,您的更改不会被覆盖

      【讨论】:

        【解决方案3】:

        为了让它不被覆盖,而是在调用 FileWriter 构造函数时通过 append=true 追加。

        虽然我建议每次只读取和写入整个文件,但不要这样做。这是因为必须对分数进行排序并重新写入文件。

        我建议使用 JAXB 创建 XML 文件。这是使用 JAXB 执行此操作的教程:http://www.mkyong.com/java/jaxb-hello-world-example/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-19
          • 2017-06-10
          • 2016-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-27
          相关资源
          最近更新 更多