По формулировке задания в старшей группе основной категории положение кубиков на карте заранее неизвестно. |
Т.е. если мы имеем робота захватишего кубик в одной из четырех разных позициях на поле, то робот должен уметь проложить маршрут из каждой позции к каждому столбику. Иными словами, в общем случае, робот должен хранить в памяти 16 различных маршрутов (пока вопрос, что маршруты по больше части очень похожи, не рассматриваем).
Аналогичным образом, возникает необходимость, после того как кубик надет на один из столбиков, переместиться к следующему кубику. Если принять во внимание, что за первым кубиком ехать не надо – очевидно, что его легче взять сразу после старта робота, то от каждого из 4 столбиков робот должен знать маршрут до каждого из 3 столбиков.
Соответственно, возникает вопрос, а можно ли как-то упростить поведение робота, так чтобы не закладывать в робота 29 различных маршрутов (1 маршрут для первого кубика + 16 + 12)?
Один из возможных способов оптимизации – использовать центральный перекресток поля. Если робот после того, как захватил кубик, переместился в центр, то у него всего лишь два разных типа маршрута, чтобы надеть кубик на один из четырех столбиков.
- Первый маршрут – прямо и налево (зеленая и красная стрелочки)
- Второй маршрут – прямо и направо (зеленая и синяя стрелочки)
Очевидно, что маршрутов возврата от столбиков к центру тоже два.
Аналогично, по две пары различных видов маршрутов, необходимо для передвижения робота из угловых точек с кубиками к центру и для передвижения от угловых точек к центру.
Итого, при реализации такой программы на языке программирования, разработичкуу нужно озаботиться лишь 6ю различными маршрутами для робота, что существенно сказывается на скоращении времени на отладку и количество тестовых прогонов. Отладив перемещение робота по 6ти разным маршрутам при одной комбинации кубиков, можно надеятся на успешные перемещения при любой другой комбинации.
Комментариев нет:
Отправить комментарий