Я работаю над программой сборки, использующей emu8086.Программа использует встроенное устройство-робот для эмуляции виртуального робота на моделируемой карте 6x9.Карта будет содержать неизвестное количество стен и ламп (освещенных / неосвещенных), в которых робот должен пройти по карте и найти все неосвещенные лампы и зажечь их.Сам робот может получать данные только из соседних квадратов, на которые он направлен, а также может вращаться только на 90 градусов.Проект предполагает, что верхний левый угол будет источником системы координат (0,0).

Я понимаю, как связать робота с моим кодом для перемещения и проверки данных, однако я не уверен, как эффективно перемещаться и проверять все лампы навсю карту, не попадая в бесконечный цикл или тупик.
Я читал об использовании нескольких алгоритмов поиска, таких как алгоритмы поиска по ширине и по глубине, но я не уверен, как реализоватьтакие понятия в ассемблере (так как большая часть примера / psuedocode написана на c ++ / c # / etc).
Я не прошу какого-либо конкретного кодирования, но хочу понять, как реализовать эти функции поиска.Поскольку в задаче упоминается начало координат для системы координат, я создал двумерный массив, в котором можно принимать значения для объектов с определенными координатами.Не уверен, насколько важен массив для проблемы, но любая помощь будет признательна.