Файл сохранения игры Python - PullRequest
1 голос
/ 27 апреля 2011

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

Ответы [ 3 ]

4 голосов
/ 27 апреля 2011

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

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

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

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

0 голосов
/ 27 апреля 2011

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

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

... читать документы http://docs.python.org/release/2.5.2/tut/node9.html

0 голосов
/ 27 апреля 2011
import os
if os.path.exists('yourplayerfile'):
   with open('yourplayerfile') as f:
        # work with f
with open('yourplayerfile','a') as f:
     # update f

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

...