创建一个文本文件,读取并比较其中的整数
Posted
技术标签:
【中文标题】创建一个文本文件,读取并比较其中的整数【英文标题】:Create a text file, read and compare the integer that inside of it 【发布时间】:2020-06-17 17:37:39 【问题描述】:我有以下任务:
我们希望保持以往玩家的最高分 游戏。此分数将保存在一个文件中,并将在 如果当前分数高于最高分数,则每场比赛结束 到目前为止。
得分最高的文件名应该是 highscores 并且应该位于 在运行游戏的文件夹中。此文件将仅包含一个 单行内容如下: 目前最高分是: XXX。
如果是我们第一次运行游戏,需要创建文件 与当前分数。在我们下次运行游戏结束时, 您需要将新分数与存储在 文件并仅在您达到最高分时更新文件。
我的代码是:
public class ScorePersistence
private int score;
private File highscores;
private int currentHighScore;
private ScorePersistence(int finalScore)
this.score = finalScore;
public void ShouldUpdate()
File highScores = new File("highscores.txt");
if (highScores.exists())
if (currentHighScore < the score that inside of highscores.txt)
currentHighScore = the score that inside of highscores.txt
highscores.write("The highest score so far is: "+ the score that inside of highscores.txt)
else
break; //means the currentHighScore is bigger than there is no reason to update the file
else
//means that there is no file yet, which means this is the first time we run the game on the computer.
currentHighScore = score;
highScore.write("The highest score so far is: "+ score).
我从负责运行关卡和游戏的班级获得游戏结束时的“int finalScore”。
你怎么看? 您认为,我应该从该文本文件中获取分数并将其与我从当前游戏中获得的“分数”进行比较吗?
谢谢。 这是一个简单的离线游戏。砖块和击中它们的球。
【问题讨论】:
【参考方案1】:这是在线游戏还是离线游戏?
如果这是一款离线游戏,我相信在开始加载游戏时读取文本文件并将其保存在整个游戏中的局部变量中就足够了。这样做可以避免不必要的文件读取,并且只能在需要时更新高分。
如果这是一款在线游戏,我需要更多信息。您如何处理服务器操作?我问这个是因为在这种情况下,您还应该处理文件锁定请求(多个用户同时尝试读/写)。我建议为此使用数据库,而不是使用文本文件。
【讨论】:
您好,感谢您的回答。这是一个离线游戏。你能解释一下你的第一个答案吗? 你并不需要每次游戏结束时都阅读文本文件。当您开始游戏时,您可以读取一次文本文件,对其进行解析,将分数转换为 int 或 float,并将其设置为变量(int highscore)。为此,您可以创建一个在游戏开始时调用的方法,并设置从文本文件中读取的值。通过这样做,您可以在 if 条件中使用 highscore 变量。只有当 currentscore 大于 highscore 时,你才调用另一个方法来更新你的变量并更新文件中的文本。以上是关于创建一个文本文件,读取并比较其中的整数的主要内容,如果未能解决你的问题,请参考以下文章