Игра Python - создание файла сохранения? - PullRequest
0 голосов
/ 27 февраля 2012

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

Это полностью консольный взломигра, основанная на реальных методах и программах.И он установлен в среде Linux;)

Я нашел это:

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

но некоторые фрагменты кода IЯ не уверен, как использовать, и я не уверен, что они идеально подошли бы для моего сценария.

заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 мая 2012

Как сказал Кимваис, использование модуля рассола является простым вариантом.Я использую его для своей игры, чтобы сохранять и загружать данные профиля, а также сохранять и загружать каждый уровень.Вот пример функции, которая сохраняет профиль игрока, который включает в себя уровни, которые она разблокировала, предметы, собранные и т. Д.

def writeProfile(profileName, profileData):
    """ pickle user profile data """

    os.chdir(PROFILE_DIR)

    fileName = profileName + ".dat"
    f = open(fileName, "wb")
    pickle.dump(profileData, f)
    f.close()

    os.chdir("..")

profileName - строка с именем файла .dat, в котором хранятся данные игрока.profileData - это новые данные (хранящиеся в объектах python, таких как кортежи, списки и словари), которые будут перезаписывать старые данные и храниться в файле .dat.PROFILE_DIR - это путь к каталогу, в котором должны храниться сохраненные игровые данные.os - это модуль Python, который выполняет такие функции, как навигация по каталогам и поиск файлов.

0 голосов
/ 27 февраля 2012

Я предполагаю, что у вас есть какой-то внутренний объект в игре, такой как «доска», «игрок» или тому подобное, который содержит состояние игры.

Если вам не нужна кроссплатформенная совместимость или что-то подобное, самый простой способ хранения объектов Python - это pickle

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

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

...