Я помогаю другу, пишу ему программу.Он перезаписывает саундтрек к старой игре Lucasarts Tie Fighter.В игре использовалась система iMuse - каждая «дорожка» состояла из нескольких небольших звуковых сигналов.Игра объединила их для создания динамического саундтрека, который изменился в зависимости от ситуации.
Для каждого «трека» существует набор правил, определяющих, какой сигнал перейти к следующему.В этом есть случайный элемент, например:
SUCC CUES
SUCC-01 перемещается в SUCC-02
SUCC-02 перемещается в SUCC-03 или SUCC-04
SUCC-03 перемещается в SUCC-01 или SUCC-04
SUCC-04 перемещается в SUCC-05
SUCC-05 перемещается в SUCC-01 или SUCC-06 или SUCC-08
SUCC-06 перемещается к SUCC-04 или SUCC-07
SUCC-07 перемещается к SUCC-01 или SUCC-02 или SUCC-04 или SUCC-08
SUCC-08 перемещается к SUCC-02 или SUCC-06
SUCC-IN переходит к SUCC-01
Есть много других треков, подобных этому, с большим количеством подсказок.По сути, каждая дорожка представляет собой сетку взаимосвязанных узлов.Он хочет, чтобы программа анализировала сигналы и создавала списки воспроизведения для каждой дорожки, которые удовлетворяют 2 критериям:
- Используются все сигналы в дорожке
- Существует минимальное повторение сигналов
У меня минимальный опыт работы с алгоритмами, поэтому я не уверен, какой алгоритм подойдет для этой проблемы.Прочитать мое предположение было бы своего рода коммивояжером.
Кроме того, если бы кто-нибудь мог указать мне на примеры кода, которые могли бы помочь (принимая во внимание мое общее незнание этой проблемы), этоБуду очень признателен.