Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как составить алгоритм движения робота на ассаьблере? / 16 сообщений из 16, страница 1 из 1
13.03.2011, 14:15
    #37162139
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Сразу признаюсь - это домашнее задание. Делать за меня его не надо, но направить на правильный ход мыслей необходимо
В эмуляторе http://www.emu8086.com/ надо "Составте программу движения робота так, чтобы робот двигаясь по выбранной траектории обошёл всю зону и встреченные по пути выключенные лампы включил (те, которые уже включены, должны остаться включенными), a встреченные препятсвия обошёл. Возвращаясь робот встреченные препятствия должен обойти и выключить включенные лампы (те, что уже выключены - выключенными и должны остаться)."
Робот может идти вперёд, повернуть вправо, влево, включить, выключить лампу. Также перед собой может обнаружить - ничего, стену, выключенную, включенную лампу. Площадка по которой он ходит заранее известна 6х9 клеток. Препятствий может быть сколько угодно.
Не могу придумать как запоминать препятсвия и отличать их от стены...
...
Рейтинг: 0 / 0
13.03.2011, 15:38
    #37162206
полином
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Cheerful CalfНе могу придумать как запоминать препятсвия и отличать их от стены...

стены описаны изначально

Cheerful CalfПлощадка по которой он ходит заранее известна 6х9 клеток.
...
Рейтинг: 0 / 0
13.03.2011, 15:40
    #37162210
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
ты не мудри, ты на пальцах покажи ;-D
...
Рейтинг: 0 / 0
13.03.2011, 15:45
    #37162223
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
я не понял подсказки, или теперь задача усложнилась?
...
Рейтинг: 0 / 0
13.03.2011, 18:43
    #37162407
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
шибко не задумывался, но может натолкнет на мысль - как пройти лабиринт любой сложнсти?
надо постоянно идти вдоль одной стены , путь не оптимальный, но всегда приведет к выходу.
обход любого препятствия приведет в прежнююточку.
...
Рейтинг: 0 / 0
13.03.2011, 18:44
    #37162408
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
ну так я и буду так ходить по кругу. а в центре-то тоже надо проверить...
...
Рейтинг: 0 / 0
13.03.2011, 19:36
    #37162440
LjAPb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
...
Рейтинг: 0 / 0
13.03.2011, 19:37
    #37162443
LjAPb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Вот, отмечаешь пройденные координаты.
...
Рейтинг: 0 / 0
14.03.2011, 11:35
    #37163190
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Гыг. А как это сделать на асме? Задание по типу напоминает создание алгоритма для "робота-пылесоса"...
Вот робот умеет: move, left, right, exam (wall, nothing, lamp_on, lamp_off).
Я зделал зделал эти процедуры. Как организовать обход комнаты?
Какие еще нужны процедуры для этого?
...
Рейтинг: 0 / 0
14.03.2011, 12:37
    #37163413
LjAPb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
...
Рейтинг: 0 / 0
14.03.2011, 13:25
    #37163599
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
LjAPb,

он там колбаситься в радномных направлениях... надо упорядочить обход комнаты.
...
Рейтинг: 0 / 0
14.03.2011, 14:07
    #37163701
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Cheerful CalfДелать за меня его не надо, но направить на правильный ход мыслей необходимо
Если лабиринт познаётся только "методом тыка", то я бы подумал вот над чем: для каждой ячейки помнить непроверенные направления, проверять их в определённом порядке (например, вверх-влево-вниз-вправо). Проверка заключается в том, что стены и включённые лампы запоминать (включённые - тоже как стены), выключенные включать и запоминать как "потом выключить", в пустоты идти, запоминать их как непроверенные и проверять оттуда. Когда стоишь на целиком проверенной ячейке - возвращаться откуда пришёл. При этом иметь в виду, что ячейка может быть проверена с разных сторон, то есть, например, с ячейки (2,2) мы узнали, что в (2,1) стена. Тогда в (1,1) уже не тыкаться вправо, а сразу ставить "справа проверено". Таким образом робот обползёт всю область, связную с исходной точкой (лабиринт может содержать недостижимые участки).

Cheerful CalfНе могу придумать как запоминать препятсвия и отличать их от стены...
Они отличаются тем, что стена - вне координат лабиринта :)
...
Рейтинг: 0 / 0
14.03.2011, 15:12
    #37163909
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
хммм... реализовать запоминание и переход "по-памяти" на асме трудновато. не заю с чем это есть :)
...
Рейтинг: 0 / 0
15.03.2011, 19:30
    #37166458
Как составить алгоритм движения робота на ассаьблере?
Cheerful Calf, задача решается в 2 этапа:
1) ты ее решаешь для себя и пишешь на любом языке (или рисуеш блок-схему). Это называется "алгоритм".
2) делаешь программу в ассемблере (можно и в ассаьблере). Это называется "реализация".

Если не можешь придумать алгоритм, то зачем тебе реализация? Все одно, не программер.

Для массива 6х9 нужно... это будет... это будет... 54 байта. А каждый байт это 8 бит. Туда пишем: занято/свободно (1 бит), исследован/нет (1 бит), пришли откуда (3 бита), ушли куда (3 бита). Анализатор анализирует, думатель думает.
Такие есть в х86 феньки, "регистры". В тч. BX, SI и DI. Очень интересные.
...
Рейтинг: 0 / 0
15.03.2011, 19:31
    #37166459
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить алгоритм движения робота на ассаьблере?
Унрегистередпришли откуда (3 бита), ушли куда (3 бита).
А третий бит - это типа сверху/снизу/из прошлого/из будущего?
...
Рейтинг: 0 / 0
15.03.2011, 19:36
    #37166466
Как составить алгоритм движения робота на ассаьблере?
softwarer, можно прийтить/уйтить по диагонали. Мы не буем комбинировать право/лево и перед/зад. Просче.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как составить алгоритм движения робота на ассаьблере? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]