Пишу свою браузерную игру с маджонгом и гейшами. Возникла следующая проблема.
Есть поле из гексов и некий источник энергии, от которого она может распространяться по всем ячейкам. При этом поток может разделяться и объединяться сколь угодно раз. Но в нём не должно быть циклов. Проще говоря, если двигаться по любым энергетическим веткам вдоль "течения", то никогда нельзя оказаться в одной ячейке более одного раза, то есть нельзя сделать петлю.
Как детектить такое замыкание?
Зелёный - как можно. Красный - как нельзя.
p.s. На одном форуме порекомендовали топологическую сортировку, но я что-то не понял, как её тут применить.