Я пишу Java-программу для спортивных состязаний лиги, которая просматривает текущий набор игр каждой команды и расписание их последующих игр, а затем на основе этого я делаю модель сети потока. Идея программы состоит в том, чтобы найти, какие команды уже выбыли и не имеют шансов выиграть или разделить 1 место с любой другой командой. После анализа сети (применяя EdmondsKarp algo.) Я выясняю, устранена ли команда get или нет. Теперь я тоже хочу смоделировать это. Я использую JGraphT в качестве библиотеки графов и, вероятно, буду использовать JGraph для визуализации (причина: как только я создаю объекты JGraphT, я могу просто создавать экземпляры объектов JGraph вместе с ними и отображать график). Я также узнал вчера о Jung Framework, кажется, хорошо.
Основная проблема в том, что я никогда не писал симуляторы, и именно здесь мне нужна помощь "Hello World". Когда я говорю имитацию, я имею в виду, что хочу визуально показать каждую часть выполнения алгоритма, и вот пример сценария: алгоритм должен находить пути расширения, поэтому я хочу показать, когда каждое новое ребро добавляется к пути расширения. Пользователь сможет проигрывать и останавливать анимацию. Я также хочу показать изменения потока во всех краях и тому подобное. Пока у меня работает алгоритм, но я не знаю, как подойти к моделированию. Должен ли я использовать отдельный поток для выполнения моделирования? Должен ли я написать отдельный класс, который будет выполняться как алгоритм, но с записью состояний, даже не зная для реального алгоритма (потому что я не хочу прерывать выполнение реального алгоритма). Должен ли я использовать текущий алгоритм и добавить несколько строк между ними для сохранения состояний выполнения в некоторых структурах данных, которые я мог бы использовать позже для отображения симуляции пользователю? Любые идеи могут помочь ..