Детство взыграло

Вспомнил игрушку детства: круглый диск с лабиринтом накрыт прозрачной крышкой, внутри по лабиринту катается шарик. Лет пятнадцать в руках не держал, а когда-то были популярны. Даже бы сейчас поигрался.

А еще лучше заиметь такую игру, только с лабиринтом в виде схемы московских дорог. И добавить еще один шарик, введя дополнительное правило: если два шарика оказываются рядом, то это пробка, а значит вы проиграли.

Но совсем хорошо, если для шариков можно создавать различные условия движения. Представим себе граф, узлам которого можно присваивать положительные, либо отрицательные значения в заданном диапазоне. Разница между значениями соседних узлов определяет направление движения и ускорение шарика. Спроецируем граф на поверхность, скажем триангуляцией Делоне и классифицируем возможные движения шариков (оба ускоряются, оба замедляются, один ускоряется, другой … и т.д.). Возникает любопытный вопрос: как связаны свойства поверхности с режимом движения шариков?

Великолепная задача. Но у меня код не отрефакторен, а я все в игрушки играю. Оставлю пока это развлечение для дикой вечеринки на ближайших выходных.