Переписав выберите свой собственный код приключения от MATLAB до Python - PullRequest
0 голосов
/ 06 апреля 2020

Несколько месяцев go Я написал основную c приключенческую программу «Выбери сам» в MATLAB, пока я баловался в школе. Я хотел переписать это в Python, чтобы я мог делать больше вещей с GUI элементами и игровыми функциями.

Однако сейчас я просто пытаюсь выяснить, как лучше всего воспроизвести систему, которую я создал в MATLAB, в Python.

Вот как это работает. Во-первых, в Excel у меня есть электронная таблица, которую я использую для отслеживания элементов истории. Он структурирован следующим образом:

Page ID - Children - Prompt - Body - Location - Items - Party Members
1         2 3        text     text   text       text    text
...       ...        ...      ...    ...        ...     ...

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

Я экспортирую эту таблицу Excel в виде текстового файла с разделителями табуляции.

В MATLAB, Я импортировал файл примерно так:

fileID = fopen('story.txt', 'r');
story = textscan(fileID, '%u %q %q %q %q %q %q','Delimiter','\t');
fclose(fileID);

, который дает мне массив данных для чтения и представления проигрывателю. Затем, пропуская некоторый вводный код, я запускаю основную игру l oop:

saveState = 1;
running = true;
while running == true
    disp(story{4}{saveState})
    children = str2num(story{2}{saveState});
    if length(children) > 0
        i = 1;
        while i <= length(children)
            disp(story{3}{children(i)})
            i = i + 1;
        end
        op2 = input("Please enter a numeric option:");
        if op2 == 0
            running = false;
        else
            saveState = children(op2);
        end
    else
        running = false;
    end
end

Там нет проверки пользовательского ввода, потому что это казалось скучным для реализации в то время.

Как это работает заключается в следующем: он загружает состояние сохранения, соответствующее идентификатору страницы из электронной таблицы, и отображает основной текст этой страницы. Затем он преобразует столбец дочерних элементов для данного индекса идентификатора в вектор чисел (сначала мне пришлось импортировать его как массив символов). Затем он отображает подсказки для соответствующих дочерних страниц для проигрывателя. Игрок получает ввод, который он хотел бы выбрать, а затем возвращается к исходному состоянию и устанавливает новое состояние сохранения для выбранной опции. Если к данной странице не прикреплены дочерние элементы, это завершает игру.

Мой вопрос заключается в следующем: какова лучшая структура данных или общий подход, который я должен использовать, если я хочу начать реализацию эта же система в Python? У меня установлено numpy, scipy и несколько других пакетов, так что я могу использовать сторонний код, если мне это нужно. Должен ли я попытаться воссоздать эту же систему в Python, или есть более простой подход, который соответствует сильным сторонам Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...