Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 13:42   #1
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию Детская задача для исполнителя Робот

Народ, нужны советы по поводу решения этой задачи.Буду признателен любым советам.
Условие:Добраться до стенки,по ходу движения засаживая грядки. Задачу необходимо решить, используя условный оператор "если", а также, при необходимости, цикл "пока". При необходимости использовать сложные условия с логическими операциями И, ИЛИ, НЕ.
Изображения
Тип файла: jpg новый-11.jpg (230.6 Кб, 78 просмотров)
Тип файла: jpg новый-1.JPG (666.0 Кб, 65 просмотров)
Тип файла: jpg новыйуеуке-221.jpg (171.0 Кб, 124 просмотров)

Последний раз редактировалось ZarinZomanu4; 27.05.2013 в 14:22.
ZarinZomanu4 вне форума Ответить с цитированием
Старый 27.05.2013, 13:51   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Ничерта не разобрать. К тому-же всё перекрывается всплывающими окнами.
После минуты попыток что-то прочесть, мне захотелось пойти поблевать.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.05.2013, 13:57   #3
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию

Спасибо за подсказку.Исправил.
ZarinZomanu4 вне форума Ответить с цитированием
Старый 27.05.2013, 14:07   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Почему про грядки не пишете? Лень? ТОгда и нам помогать Вам лень.
Задачу нужно оформлять соотвеиствующим образом. И желательно давать свои наработки (предположения). Сидеть и два часа разбираться с условием задачки, здесь никто не будет.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.05.2013, 14:38   #5
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию

Абсолютно не лень просто сие обстоятельство прошло мимо меня.Ч то же касается наработок:
{
налево;
вперед ( 1 );
направо;
пока ( впереди_свободно )
{
вперед ( 1 );
}
посади;
налево;
пока ( слева_стена или справа_стена )
{
вперед ( 1 );
если ( грядка и (слева_стена или справа_стена) )
{
посади;
}
как в условие прописать чтобы были засеяны грядки в ответвлениях трезвых мыслей нет.
Изображения
Тип файла: jpg новый-221.jpg (228.7 Кб, 61 просмотров)
ZarinZomanu4 вне форума Ответить с цитированием
Старый 27.05.2013, 15:21   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

У Вас посыл не правильный. Робот должен обходить любой лабиринт, который представлен в данной размерности матрицы. Алгоритм Дейкстры, Вам в помощь.
Если в кратце, за начальное положение принимается текущее положение робота и идёт движение до ближайшей "стены". По пути проверяется, не обнаружена-ли клумба.
Если обнаружена - посадка.
Иначе, проверка на положение стен.
Если от стены положений более 2-х
Проверяем, проходил ли робот по одной из дорог и отбрасывается та, по которой проходил.
Если остаются две дороги, то можно избрать два случая
1) случайный выбор (метод монеты)
2) обход лабиринта по кругу, т.е. всегда он идёт либо прямо, либо сворачивает в одну из сторон (вправо, влево). Выбор направления сворачивания, никак не влияет на обход лабиринта.
Заодно проверяется, все-ли клумбы посажены.
Если все-останов.
Нет времени детально расписывать по шагам, но надеюсь, основную идею Вы поняли.

А, да (забыл) нужно делать проверки на границы матрицы. Они тоже считаются "стенами".
Кстати, от границ матрицы, робот дожен делат один поворот, противоположный тому, что делал ранее и идти в обратном направлении.

Выглядеть это будет примерно так:
От алгоритма Дейкстры, это несколько далековато, но в конечном итоге, лабиринт он обойдет. Правда некоторые меры от зацикливания, всё-же нужно будет предпринять.
А, вот. Покурил - вспомнил. По данному алгоритму бегала "Мышь Шеннона".
Изображения
Тип файла: jpg новый-222.jpg (337.3 Кб, 62 просмотров)
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 27.05.2013 в 15:45.
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.05.2013, 16:04   #7
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию

Спасибо буду пробовать.
ZarinZomanu4 вне форума Ответить с цитированием
Старый 27.05.2013, 22:30   #8
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию

Если Вам не сложно, подскажите пожалуйста как избежать зацикливания?
ZarinZomanu4 вне форума Ответить с цитированием
Старый 27.05.2013, 23:20   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Если путь уже пройден, но свободных путей впереди нет, то возврат до первой свободной клетки, разворот по принятым правилам и всё с начала.
Кстати, заметил свою ошибку. С клетки X2-Y2 (массив нумеруется с X0-Y0), робот будет переходить на клетку X1-Y2, а затем на клетку X1-Y3. Уперевшись в стену, он опять зделает левый поворот (алгоритм с левосторонним обходом).
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 27.05.2013 в 23:26.
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.05.2013, 00:31   #10
ZarinZomanu4
 
Аватар для ZarinZomanu4
 
Регистрация: 27.05.2013
Сообщений: 9
По умолчанию

Чуйка мне подсказывает что задача решается проще ибо предназначена для детей.
ZarinZomanu4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Робот для постоянного обновления прайс-листов vvladiss Фриланс 6 21.05.2016 17:19
Ищу исполнителя для курсовой по распараллеливанию DeNdRo1D Фриланс 2 05.10.2012 21:54
Сформулировать задачу для правильного поиска исполнителя К_И_В Фриланс 1 22.02.2012 00:51
[C\C++]Робот для имитации работы на компьютере severovdrei Фриланс 4 29.11.2011 17:41
детская игра -подбери парную куртинку? как? tatiana74 Помощь студентам 8 07.02.2010 14:37