Файл сохранения игры Python

1

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

Теги:
file
save

3 ответа

4

Здесь два разных вопроса:

  • Что хранить в файле и как его хранить.
  • Логика, когда хранить и когда загружать

Первый вопрос проще назвать более универсальным. Здесь у вас есть несколько хороших вариантов: один использует класс Python ConfigParser для Windows .ini - как файлы конфигурации. В качестве альтернативы вы можете использовать pickle, чтобы просто сбросить какую-то структуру данных конфигурации/настроек (может быть вложенным dict). Тогда есть встроенная привязка SQLite. Существуют и другие варианты - все зависит от уровня сложности, который вы хотите.

Вторая проблема более специфична для вашего приложения. Вы можете попробовать открыть файл конфигурации при запуске и, если он там, прочитать его содержимое. Позже вы можете периодически сохранять настройки/прогресс в нем. Советуйте: всегда сохраняйте полный набор настроек в постоянной структуре данных, даже если только часть настроек находится в файле конфигурации, когда вы его читаете (по какой-то причине), имеют значения по умолчанию для ваших настроек.

  • 1
    +1 к рассолу! Это, наверное, лучший выбор на данный момент.
0
import os
if os.path.exists('yourplayerfile'):
   with open('yourplayerfile') as f:
        # work with f
with open('yourplayerfile','a') as f:
     # update f

Это схема, с которой вы должны работать.

  • 0
    Спасибо за помощь!
  • 0
    Не думаете ли вы, что проверка наличия файла является излишней? В конце концов, a создаст файл, если он не существует.
Показать ещё 1 комментарий
0

Я предлагаю вам сохранить в sqlite или некоторые подобные вещи... но я не могу понять, где ваш вопрос? сохранить файл или прочитать файл?

try:
   f=open('/tmp/workfile', 'w')
   # i find file 
except:
   #there is no file
<open file '/tmp/workfile', mode 'w' at 80a0960>

... read docs http://docs.python.org/release/2.5.2/tut/node9.html

  • 0
    Нет, пожалуйста, используйте with open(file) as f вместо with open(file) as f . Это намного чище.
  • 0
    Что нужно сделать, это создать файл для хранения переменных, определяющих прогресс игроков, также нужно при запуске проверить, есть ли выход из этого файла, и, если это так, применить данные внутри к переменным прогресса игрока.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню