Предмет: Информатика, автор: ssssnastusha

Робот где-то в прямоугольнике. Он должен закрасить исходную клетку, если выполняются два условия:
- у клетки, расположенной над исходной, есть стена сверху;
- у клетки, расположенной под исходной, есть стена снизу.

Приложения:

Ziorar: Шагните в верхнюю клетку, проверьте стену сверху. Если есть, то шагайте в нижнюю клетку, проверьте стену снизу. Если есть, то шагните в исходную клетку и закрастьте её. Что тут ещё можно сказать.
ksyushaksyuhina: Вы решили? Можете помочь, голову ломаем, всё неправильно
Ziorar: Я не знаю какая там система команд (то ли какой то общий язык программирования с дополн.командами исполнителя, то ли свой какой то специфический язык). Но, логику решения я примерно рассказал выше.
Varvara678: я решила почти для трех роботов фиил сел ,а для четвертого не знаю
Ziorar: Это хорошо, что самостоятельно стараетесь разобраться! Поймёте логику работы программ- и сможете писать свои, сами удивитесь своим возможностям и будете удивлять одноклассников. Так держать!

Ответы

Автор ответа: sergei1smirn
5

Ответ:

move_down()

if wall_from_down():

   move_up()

   fill_cell()

elif free_from_down():

   move_up()

   move_up()

if wall_from_up():

   move_down()

   fill_cell()

elif cell_is_clean():

   move_down()

Объяснение:

Просто вставь код


ksyushaksyuhina: Автор, вы решили?
ksyushaksyuhina: Можете помочь
ksyushaksyuhina: Умоляю
ksyushaksyuhina: Или может вам объяснили
Ziorar: Если там на Питоне то попробуйте эту прогу:
НО! Исправьте (но только в начале всех строк!) символы "_" на пробелы. (просто тут в комментах удаляются все начальные пробелы, а они важны в Питоне, и их количество важно!)

move_up()
if wall_from_up():
____move_down()
____move_down()
____if wall_from_down():
________move_up()
________fill_cell()
____else:
________move_up()
else:
____move_down()
Ziorar: По сути, последние четыре строки можно и не писать- они возвращают робота на исходную клетку если нет одной из стенок (так по моему лучше, хотя это больше для красоты- ведь так робот вернётся на исходную клетку в любом из вариантов).
Ziorar: Главное, сколько "_" в начале строк- столько вместо них должно быть пробелов (там где то 4, а где то 8). Но не трогайте эти символы "_" между словами- там их не надо заменять пробелами!
Varvara678: а мы свел еще не решали
Ziorar: Видимо пришла пора решать. wall -это стена, используется в команде проверки наличия стены (а в задаче как раз надо проверить наличие двух стен). Можно конечно извернуться, и проверить отсутствие стены. Ладно, так и сделаю пожалуй.
Ziorar: Вот, версия с проверкой отсутствия стенок (в начале строк каждый символ "_" замените на пробел):

move_up()
if free_from_up():
____move_down()
else:
____move_down()
____move_down()
____if free_from_down():
________move_up()
____else:
________move_up()
________fill_cell()
Похожие вопросы