Создайте текстовый файл, прочтите и сравните целое число внутри него - PullRequest
0 голосов
/ 17 июня 2020

У меня следующая задача:

Мы хотели бы сохранить наивысший балл игроков в предыдущих играх. Этот счет будет сохранен в файле и будет обновляться в конце каждой игры, если текущий счет выше, чем наивысший результат на данный момент.

Имя файла с наибольшим количеством очков должно быть рекордами и должно быть находится в папке, из которой запускалась игра. Этот файл будет содержать только одну строку со следующим содержанием: Наивысший результат на данный момент: 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 Ответ

0 голосов
/ 17 июня 2020

Это онлайн-игра или офлайн?

Если это офлайн-игра, я считаю, что чтение текстового файла при загрузке игры в начале и сохранение его в локальной переменной на протяжении всей игры было бы нам достаточно. Таким образом вы избежите ненужных чтений файлов и сможете обновлять рекорды только при необходимости.

Если это онлайн-игра, мне понадобится дополнительная информация. Как вы справляетесь с работой сервера? Я спрашиваю об этом, потому что в этом случае вы также должны обрабатывать запросы блокировки файлов (несколько пользователей пытаются читать / писать одновременно). Я бы рекомендовал использовать для этой цели базу данных, а не текстовый файл.

...