|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.06.2020, 07:06 | #71 | |
Пользователь
Регистрация: 18.06.2020
Сообщений: 37
|
Цитата:
Код:
Разобрался и запустил уже) Последний раз редактировалось Kvark82; 20.06.2020 в 07:10. |
|
20.06.2020, 07:25 | #72 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
20.06.2020, 08:20 | #73 |
Пользователь
Регистрация: 18.06.2020
Сообщений: 37
|
До тех пор, пока сверху нет стены:
если клетка закрашена, то m+1, иначе (клетка не закрашена) - закрашивай клетку. (Но почему белые клетки не закрашиваются тогда?) Потом идем вверх. (пока не упремся в стену сверху). Код:
а если не закрашена, то - закрашиваем Код:
В итоге возвращаем сумму всех m. Для чего нам эта m? В итоге, мы идем, пока не появится справа стенка, и если сверху есть стенка, то закрашиваем (все закрашиваем?!!) иначе идем вверх и присваиваем count значение coridor, но при этом ничего не вызывваем. Потом идем вправо. Потом mov('ax', count) Вот что мы делаем в последней строчке? |
20.06.2020, 08:26 | #74 |
Пользователь
Регистрация: 18.06.2020
Сообщений: 37
|
|
20.06.2020, 08:40 | #75 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Потому что сначала заходим в коридор, а потом уже красим.
Потому что условие требует сосчитать количество уже закрашенных и вернуть его через регистр. Правильнее сказать, не в итоге, а просто мы идем, пока не появится справа стенка. Потому что функция coridor вспомогательная, а task_8_18 главная. Не всё, а всего лишь одну клетку, в тех случаях когда сверху нет коридора. Это не так. Каждый раз вызывается функция coridor (для каждого коридора). Записываем в регистр 'ax' значение count.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
20.06.2020, 08:44 | #76 | |||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Там либо уже закрашенные, либо те, которые надо красить. Для коридоров у меня отдельная функция, которая проверяет клетку. Если клетка уже закрашена, то подсчитываем. m - это счётчик, который "виден" в самой функции. Если клетка не закрашенная, то красим. Это мы делаем на проходе вверх, пока не упрёмся в стенку сверху. Когда упёрлись, вываливаемся из цикла. Теперь проверим эту последнюю ячейку и назад, "домой", пока не упрёмся в пол. Цитата:
Подсчёт таких клеток и есть ответ. Из задания видно, что бирюзовый цвет (так я его оценил) в горизонтальном коридоре только там, где нет коридора вверх. Такие клетки надо красить во всех коридорах и в горизонтальном, и вертикальных. Цитата:
В моём случае вызов Код:
Это можно было бы написать и так: Код:
На последний вопрос ответил BDA. В задании это описано невнятно. Как он [BDA] к этому пришёл, хз.
Как-то так, ...
|
|||
20.06.2020, 08:52 | #77 |
Пользователь
Регистрация: 18.06.2020
Сообщений: 37
|
Короче, что такое наблюдатель и счетчик надо разобраться мне. Без этого не тяну задачку.
|
20.06.2020, 09:01 | #78 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Ну вы же считали шаги в своем же решении 21 задачи. А тут считаем не шаги, а закрашенные клетки. Не обязательно привязываться к слову наблюдатель. Нужно просто в какое-то определённое место записать число. Число это количество закрашенных клеток, а место это "регистр ах". Если бы это была просто переменная ax, то можно было бы написать ax = count. Но у робота есть специальная команда для записи в регистр - mov.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
20.06.2020, 11:55 | #79 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Что такое наблюдатель. Когда вы запускаете задачу, то вам предъявляется форма, в которой движется робот. Это генерирует не Python, а среда, которая разбирает ваши команды и отображает их действие на робота. Эта среда анализирует ваши команды и формирует сообщение: вид робота меняется, цвет клеток меняется. Среда проверяет правильность заданной вами последовательности команд. В некоторых случаях среда просит предоставить ей число. Вот эта среда и есть наблюдатель. Что такое счётчик. При выполнении задания нам надо подсчитать число закрашенных, до начала движения, полей. Переменная, которая сохраняет такое число, может быть названа счётчиком. Вы можете, представить счёты с костяшками. Как только появилось закрашенное поле костяшка вправо. Число накопленных костяшек на счётах и надо передать среде, в которой работает ваша задача. Ещё раз. Ваша задача работает не в чистом Питоне. У неё есть, можно сказать, отдельная виртуальная машина, которая генерирует задания, интерпретирует команды, проверяет их правильность ...
Как-то так, ...
|
|
25.06.2020, 17:36 | #80 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Задача 30.
Попробовал несколько вариантов и решил предложить этот: Код:
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать непроходимые стены | NIKOLAYY2 | Общие вопросы Delphi | 6 | 10.02.2015 14:51 |
Парсер для стены в ВК | EndoCrinolog | PHP | 14 | 15.11.2012 02:44 |
API ВКонтакте - получить все записи стены | MILLIONERR | PHP | 0 | 23.09.2012 16:52 |
GLScene проходимость сквозь стены | beygul | Помощь студентам | 0 | 10.10.2011 19:12 |
C# Создание стены и флага(финиш)! | ZaVyLoN | Общие вопросы .NET | 6 | 23.10.2010 17:23 |