Технический форум по робототехнике.
Radist » 15 июл 2011, 11:29
Для начала алгоритм "квадратная спираль + оверлок" в пустой прямоугольной комнате
- Код: Выделить всё • Развернуть
фон = room.gif
переменная а
цвет 13
перо 1
опустить перо
переменная х
переменная шаг
переменная ширина_спирали
х = 1
ширина_спирали = 10
шаг = ширина_спирали
спираль:
поднять перо
вперед 1
если датчик <50 то
назад 1
опустить перо
перейти к конец_спираль
иначе
назад 1
опустить перо
вперед 1
конец условия
шаг = шаг-1
если шаг = 0 то
х = х+1
шаг = ширина_спирали*х
направо 90
конец условия
перейти к спираль
конец_спираль:
а = 10
повторять пока а > 1
{
поднять перо
вперед 3
если датчик > 50 то
назад 3
опустить перо
вперед 3
направо а
а = а / 1.0002
иначе
назад 3
налево 90 + случайный * 90
конец условия
}
пиши "конец"
- Вложения
-
- room.gif (3.31 КиБ) Просмотров: 10645
Последний раз редактировалось
Radist 19 июл 2011, 12:25, всего редактировалось 2 раз(а).
=DeaD= » 15 июл 2011, 11:31
Я вас умоляю - не надо оценивать сферические алгоритмы в вакууме
Либо надо добавить препятствия, либо погрешность движения, а лучше и то и другое.
Radist » 15 июл 2011, 11:39
Это только для начала, чтоб отработать сам алгоритм. У меня спираль не сразу вышла - язык очень примитивный. А потом можно нарисовать свою мебель, поставить черепашку к стенке у зарядной станции, повернуть ее в нужную сторону. Тема создана для обмена программами/алгоритмами, а также планами комнат.
Vovan » 15 июл 2011, 11:41
Можно начинать убираться в комнате yak-40
forum90/topic9506-795.html#p212133
Radist » 15 июл 2011, 12:18
Это можно
- Код: Выделить всё • Развернуть
фон = yak-40.gif
поднять перо
место 50,50
переменная а
цвет 13
перо 1
опустить перо
переменная х
переменная шаг
переменная ширина_спирали
х = 1
ширина_спирали = 10
шаг = ширина_спирали
спираль:
поднять перо
вперед 1
если датчик <50 то
назад 1
опустить перо
перейти к конец_спираль
иначе
назад 1
опустить перо
вперед 1
конец условия
шаг = шаг-1
если шаг = 0 то
х = х+1
шаг = ширина_спирали*х
направо 90
конец условия
перейти к спираль
конец_спираль:
а = 10
повторять пока а > 1
{
поднять перо
вперед 1
если датчик > 50 то
назад 1
опустить перо
вперед 1
направо а
а = а / 1.0002
иначе
назад 3
налево 90 + случайный * 90
конец условия
}
пиши "конец"
- Вложения
-
- yak-40.GIF (4.28 КиБ) Просмотров: 10482
Vovan » 15 июл 2011, 12:25
- Вложения
-
Radist » 15 июл 2011, 12:45
Предлагаю во вложения вставлять файлы "чистых" комнат, чтоб по ним можно было повозить черепашку разными алгоритмами. Зарисованные комнаты мы сами посмотрим - их уже второй раз не использовать.
=DeaD= » 15 июл 2011, 13:40
Надо сделать толщину окружности в радиус пылесоса
Michael_K » 15 июл 2011, 15:56
Да в этом лого, к сожалению, приходится извращаться, если делаешь широкую линию , то черепха подъезжая к стенке ее (стенку) закрашивает и едет сквозь стенку спокойно по своему только что нарисованному следу.
Последний раз редактировалось
Michael_K 15 июл 2011, 19:47, всего редактировалось 1 раз.
Gelios » 15 июл 2011, 16:18
Отработка алгоритмов на компьютере хорошая идея
Было бы хорошо рас , сформировали отдельную темку , и программу Game Logo выложить , а то как не искал так и не нашел
. Хотелось бы тоже опробовать
Eruman » 15 июл 2011, 16:38
Michael_K » 15 июл 2011, 19:44
Алгоритм "газонокосилка"
- Код: Выделить всё • Развернуть
фон = path.gif
переменная угол_поворота
переменная пройденный_путь
переменная флаг
цвет 14
перо 1
опустить перо
флаг = 1
пройденный_путь =0
повторять 10000
{
поднять перо
вперед 3
если датчик > 50 то
назад 3
опустить перо
вперед 3
пройденный_путь = пройденный_путь+3
иначе
назад 3
если пройденный_путь < 15 то
угол_поворота = 90
если флаг = 1 то
налево угол_поворота
флаг = 0
иначе
направо угол_поворота
флаг = 1
конец условия
иначе
угол_поворота = 180 - (15/пройденный_путь) * 180 / 3.14
если флаг = 1 то
направо угол_поворота
флаг = 0
иначе
налево угол_поворота
флаг = 1
конец условия
конец условия
пройденный_путь = 0
конец условия
}
пиши "конец"
Добавлено спустя 5 минут 16 секунд:у оверлока нужно угол отскока уменьшить. А чтобы он круги не мотал, попав в чистое поле, ограничить движение по дуге разумной цифрой.
Vovan » 15 июл 2011, 22:14
ИМХО команду "поднять перо" употреблять не следует, т.к. применительно к пылесосу, пока, эта команда не подходит - у него всегда "перо опущено".
Про необходимость "поднятия пера" у пылесоса - в соседней теме.
Michael_K » 15 июл 2011, 22:26
разрешаю не употреблять
Radist » 15 июл 2011, 22:41
А я наоборот поддерживаю предварительную проверку стены. Реальный пылесос в стену заехать не может, а черепашка заезжает. И если она принесет туда след, то потом будут глюки с определением стены. Так что я за поднятие пера перед проверкой.