Оптимизация структуры данных для моего текстового приключения? [Дубликат]

    

У этого вопроса уже есть ответ:

    

В моем текстовом приключении, которое я делаю, я храню данные истории в хэш-таблице (я использую скрипт javascript /единство единства, так как мне удобнее синтаксис, чем C #).

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

Вот хеш-таблица, поскольку она в настоящее время структурирована:

public static var story = {
    "0":
    {
        "text":"",
        "choices":
        {
            "response1":
            {
                "text":"",
                "nextPart":"1"
            },
            "response2":
            {
                "text":"",
                "nextPart":"2"
            },
            "response3":
            {
                "text":"",
                "nextPart":"3"
            }

       }
    },
    "1":
    {
        "text":"",
        "lastPart":"0"
    },
    "2":
    {
        "text":"",
        "lastPart":"0"
    }
};

Если бы кто-нибудь мог помочь мне оптимизировать структуру хэш-таблицы, которая сделает это, мне будет легче редактировать ее в будущем, это было бы здорово

Быстрая информация для деталей, которые могут быть непонятными:

  • «lastPart» указывает на синтаксический анализатор hashtable, который игрок умер и номер относится к той части, где они выбрали ответ /выбор.

  • "nextPart" относится к той части истории, к которой приводит ответ.

4 голоса | спросил Ducktor 16 J000000Sunday17 2017, 21:16:34

1 ответ


1

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

Избавиться от избыточности, чтобы уменьшить ошибки при редактировании.

Вы также захотите избавиться от числовых идентификаторов и заменить их на читаемые имена.

И вы захотите разрешить разбиение одной истории на несколько файлов.

:Start: You're in a forest, bla bla...
>Start_Left: Move left.
>Start_Right: Move right.
>Tree: Hug a Tree.

:Start_Left: You fall into a spike trap and die
>Dead.

:Start_Right: You enter a clearing. What do you do?
>Victory: Take a nap.
>Tree: Hug a tree

:Tree: The tree is laced with poison. You die.
>Dead.

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

ответил Peter 16 J000000Sunday17 2017, 23:26:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132