所以,我有一个"记忆游戏",你可以输入你的名字,选择难度(4x4或6x6游戏),然后开始游戏。 单击“开始”时,将弹出一个新面板,游戏将开始。
按钮将被随机化,对于您犯的每个错误,您将失去2分,并且对于每个正确的组合,您将获得10分。 最后,或者如果单击“退出”按钮,将弹出一条消息,说明玩家的名字,他做了多少尝试(点击了2个不同的按钮)以及他有多少积分。然后游戏结束,并且它不会保存玩家的分数。
现在,我的问题是,我不知道如何在我的代码中实现排名系统。这将是一些基本的东西,例如,所有分数之间的比较,并将它们重新排列到最先分数最多的那个,依此类推。
因此,根据我的研究,我需要一种Save方法,每当有人完成一个游戏时,它会将他们的分数保存在.txt文件和一个Array方法中,这样可以将得分排列为Best to Worst。
这是整个代码;
ServletConfig conf=getServletConfig();
String s1=conf.getInitParameter("n1");
String s2=conf.getInitParameter("n2");
out.println("n1 value is " +s1+ " and n2 is " +s2);
问题是文件总是被新的.txt覆盖 我已经尝试创建一个File类型属性,这样他就不会总是创建另一个.txt但是没有成功。
这是我需要对此代码做的最后一件事,但我似乎无法弄明白,请帮助。
答案 0 :(得分:1)
问题是文件总是被新的.txt
覆盖
问题在这里
writer = new BufferedWriter( new FileWriter( "Ranking.txt"));
每次调用new FileWriter( "Ranking.txt")
时,都会创建新的空文件。如果要向现有文件添加更多数据,则需要通过
writer = new BufferedWriter( new FileWriter( "Ranking.txt", true));
// add this part -^^^^
答案 1 :(得分:0)
可能这就是你在寻找什么
只需将APPEND参数指定为true即可,您的更改不会被覆盖
答案 2 :(得分:0)
要使它不被覆盖,而是在调用FileWriter构造函数时追加传递append = true。
而不是这样做虽然我建议每次只读取和写入整个文件。这是因为必须对分数进行排序并将其重写到文件中。
我建议使用JAXB来创建XML文件。以下是使用JAXB执行此操作的教程:http://www.mkyong.com/java/jaxb-hello-world-example/