所以,我有一个“内存游戏”,你可以输入你的名字,选择难度(4x4或6x6游戏),然后开始游戏。 当您单击“开始”时,将弹出一个新面板,游戏将开始。
按钮将是随机的,每犯一个错误,您就会失去 2 分,而每出现一个正确的组合,您就会获得 10 分。 最后或者如果您单击“退出”按钮,将会弹出一条消息,说明玩家的姓名、他尝试了多少次(单击 2 个不同的按钮)以及他有多少积分。然后游戏结束,并且不会保存玩家的分数。
现在,我的问题是,我不知道如何在我的代码中实现排名系统。这将是一些基本的事情,例如比较所有分数并将它们重新排列为分数最高的分数排在第一位,依此类推。
因此,根据我的研究,我需要一个 Save 方法,每当有人完成游戏时,它都会将他们的分数保存在 .txt 文件中,以及一个 Array 方法,将分数从最好到最差排列。
这是完整的代码;
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 覆盖 我已经尝试创建一个 File 类型属性,这样他就不会总是创建另一个 .txt 但没有成功。
这是我需要对此代码做的最后一件事,但我似乎无法弄清楚,请帮忙。
最佳答案
The problem is that the file is always overwritten with a new .txt
问题就在这里
writer = new BufferedWriter( new FileWriter( "Ranking.txt"));
每次调用new FileWriter("Ranking.txt")
时,它都会创建新的空文件。如果您想向现有文件添加更多数据,您需要通过以下方式以附加模式打开它:
writer = new BufferedWriter( new FileWriter( "Ranking.txt", true));
// add this part -^^^^
关于java - [JAVA]如何创建排名系统并将其保存到.txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192152/