Как реализовать клеточный автомат «Бегающие сигналы»? Для игры нужно реализовать логику.
В одномерное пространство заталкиваются справа шарики. С неким интервалом (например, секунда) они двигаются влево до тех пор пока не стукнутся о границу пространства или о другой шарик, и тогда меняют направление движения.
Условия:
Одномерное пространство - это массив js фиксированной длинны.
Шарики - это единички
Реализовал при помощи клеточного автомата (с окрестностью фон Неймана порядка 1), и в самом конце столкнулся с проблемой, когда два шарика двигаются навстречу и встают на одно и то же место (при этом один шарик пропадает).
Лобовое решение это не использовать клеточный автомат, и с помощью .indexOf двигать единички и двоечки по очереди, но я бы не хотел так реализовывать, а иначе решить, ума не хватает на данный момент.
Прошу помощи.

21 Авг 2019 в 06:21
207 +1
0
Ответы
1

Для реализации клеточного автомата "Бегающие сигналы" с учетом столкновения двух шариков можно воспользоваться следующим подходом.

Создайте одномерный массив фиксированной длины, например, из нулей, где 1 представляет шарик.

Реализуйте логику перемещения шариков по следующему алгоритму:

Пройдите по массиву и найдите все индексы, где находятся шарики.Для каждого найденного индекса проверьте возможность движения влево или вправо.Если движение возможно, переместите шарик на следующий индекс в указанном направлении.Если при движении встречается другой шарик или граница массива, измените направление движения шарика.

После каждого шага проверяйте наличие столкновений двух шариков. Если обнаруживается столкновение, выполните необходимые действия, например, оставьте оба шарика на месте или переместите их оба в другую сторону.

Повторяйте шаги 2-3 с заданным интервалом времени.

Этот подход позволит вам реализовать функционал клеточного автомата "Бегающие сигналы" с учетом столкновения двух шариков.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 852 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир