Эй, я пишу простую игру, в которой я хочу сохранить прогресс и загрузить его в другой момент. Один из элементов для сохранения - это массив. Я хочу сохранить этот массив в одну строку в виде массива, а также загрузить его снова в виде массива, но он берет только первый элемент, а следующие элементы перезаписывают дополнительное содержимое
Пример (неверно) - Сохранить данные
player_1 = "name"
array = [1, 2, 3]
count = 1000
File.open("game.txt", "w+") do |file|
file.puts player_1
file.puts array
file.puts count
end
Пример (неверно) - Загрузить данные
file_data = File.open("game.txt").readlines.map(&:chomp)
player_1 = file_data[0]
array = file_data[1]
count = file_data[2]
ВЫХОД: TEXTFILE
name
1
2
3
1000
Поэтому я преобразовал массив в строку и записал ее в текст файл (работает, но кажется неудобным)
для сохранения массива
file.puts double_checker.to_s
# Output: String
"[1, 2, 3]"
для загрузки массива (загрузка строки из текстового файла, удаление специальных символов, преобразование ее обратно в массив, преобразование элементов в целые числа)
# Converts String back to Array, digits convert to Integers
double_checker = double_checker.delete(" []").split(",").map { |s| s.to_i }
# Output: Array
[1, 2, 3]
Теперь мой вопрос: есть ли способ сохранить массив непосредственно в текстовый файл (в одну строку) и прочитать его таким же образом, чтобы я мог сохранить массив прямо в переменная?
Или можно хранить строки только в текстовом файле?
Я пытаюсь выяснить, как можно использовать запись / чтение для сохранения и загрузки файлов, например, игры прогресс.