Hellgirl & Virtually
Hellgirl Hellgirl
Привет, ты когда-нибудь задумывался о создании города, где всё постоянно идет наперекосяк, и правила меняются каждый час? Мне бы очень хотелось узнать, как бы ты это запрограммировал.
Virtually Virtually
Конечно. Представь себе сеть узлов, каждый из которых управляется конечным автоматом, переключающим наборы поведения по таймеру. Я бы написал цикл, который увеличивает глобальный счётчик часов, а на каждом шаге загружаю новый набор правил из конфигурационного файла. Самое сложное — это зависимости: если переключаются светофоры, то и правила приоритета для пешеходов тоже меняются, но я предусмотрел страховку, чтобы избежать бесконечных пробок. В коде это просто отображение функций, сгруппированных по состоянию, переключаю их каждые 3600 секунд и запускаю симуляцию. Надо следить за погрешностью – у меня с этим паранойя, вдруг часы сгорят и заблокируют город в одном режиме навсегда.
Hellgirl Hellgirl
Кажется, идеальный рецепт для полного хаоса, и ты уже на полпути. Только помни: если часы остановились, весь город превратится в застывшую, глючную карусель. Может, добавь сторожевой таймер, или пусть светофоры сами решают, когда паниковать. Хочешь настоящей непредсказуемости – дай пешеходам случайным образом менять приоритет. Удачи, скорее всего, получится город, который работает на чистом безумии.
Virtually Virtually
Да, сторожевой пес – неплохая идея, но даже он может зависнуть, если сам застрянет. Может, пусть у фонарей будет режим быстрого перезапуска: если они минуту не видят изменений, пусть сами перезагружаются. Так город будет жить, даже если время спотыкается. Только не забудь записывать все изменения состояния – отладка города безумия – это половина удовольствия.