Добрый день уважаемые посетители VGTimes.Ru. Сегодня мы закончим разбирать прохождение головоломки Human Resource Machine. Поскольку игра сложная, но интересная, наверняка данный гайд будет полезен.
Посмотреть прохождение Human Resource Machine можно и в других материалах нашего сайта:
Сегодня мы разберем следующие уровни:
Не будем откладывать дело в долгий ящик и сразу перейдем к советам по прохождению Human Resource Machine. Поскольку задачи здесь высокого уровня и практически все имеют большое решение, мы, для удобства, склеили его на одном скриншоте, просто будьте внимательны.
Задача: для каждого ВВОДИМОГО адреса ВЫВЕСТИ соответствующую этому адресу букву на полу. Будьте внимательны при использовании доброй половины функций, ведь теперь у них двойное значение — обратите внимание на квадратные скобки! Само же решение достаточно тривиально:
Задача: каждая вещь на ВВОДЕ — адрес ячейки на полу. Для каждого адреса ячейки, предоставленного на ВВОДЕ, ВЫВЕДИТЕ запрашиваемый предмет с пола и выводите все последующие предметы с пола до тех пор, пока не достигните нуля.
Несмотря на такое внушительное описание, как и предыдущая «зеленая» задача, это задание довольно простое и решается всего в 7 строк:
Задача: обратите каждую ВВОДИМУЮ нуль-терминированную строку и ВЫВЕДИТЕ её. Повторяйте до тех пор, пока ВВОДИМЫЕ данные не закончатся. Данное задание решается буквально в 10 команд:
Задача: для каждой ВВОДИМОЙ вещи ВЫВЕДИТЕ количество совпадающих с ней вещей на полу.
Первое решение данного задания является скоростным, но имеет 17 строк:
Второе решение несколько медленнее, но имеет 16 строк:
После этого задания смотрим ролик и переходим к следующему.
Задача: отправьте все из ВВОДА на ВЫВОД, за исключением гласных. Решить эту проблему можно за несколько минут, однако, если у вас не получится, вот код из 13 строк:
Теперь перейдем к факультативу (слева от линии).
Задача: ввод содержит ровно два слова. Определите, какое из них было первым в алфавитном порядке и отправьте только его на вывод.
Надо признать, что в данном случае придется повозиться — решение содержит 35 строк и кучу переходов, поэтому будьте внимательны, когда будете переносить решение. Оно бы разместилось на трех скриншотах, но мы склеили его в один, для удобства:
Задача: каждое ВВОДИМОЕ число разбейте на отдельные цифры и отправьте их на ВЫВОД. Например, число 123 станет цифрами 1, 2 и 3. Данная факультативная задача была решена только в случае количества строк, всего их 29, а лимит — 30:
Испытание на скорость не пройдено, так что я буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.
(картинка будет добавлена позже)
Задача: для каждого ВВОДИМОГО числа ВЫВЕДИТЕ его простые МНОЖИТЕЛИ в порядке возрастания. Еще одна сложная задача, требующая длительного обдумывания рабочего алгоритма. Мне удалось решить ее только в части на скорость:
Испытание на количество строк не пройдено, так что я буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.
(картинка будет добавлена позже)
Самое время вернуться к основным заданиям и пробить путь к концовке игры! Начинаем задания справа от линии.
Задача: отправьте всё из ВВОДА на ВЫВОД, за исключением тех значений, которые уже ВЫВОДИЛИСЬ. Избавьтесь от всех дубликатов.
Задача должна иметь два решения — первое, на количество кода, занимает 16 строк из необходимых 17:
А вот второе решение, на скорость, мне найти не удалось, так что буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.
(картинка будет добавлена позже)
Задача: каждая ВВОДИМАЯ вещь — адрес одной из пар. Подайте на ВЫВОД данные этой пары, а также данные всех следующих пар в цепочке. Цепь закончится, когда адрес будет отрицательным.
Очень простая задача, решение которой можно найти за несколько минут, но, если у вас это не получится, вот оно:
Задача: каждый ВВОДИМЫЙ номер — адрес ячейки на полу. Отправьте на ВЫВОД координаты этой ячейки, сначала номер столбца, затем номер строки.
Несмотря на кажущуюся сложность, у этой задачи очень простое решение, нужно просто придумать правильный алгоритм и обратите внимание на цифру «4» на полу — она там не просто так. Если что-то не получится, вот универсальное решение, которое занимает 14 строк:
Задача: для каждой нуль-терминированной последовательности, подаваемой на ВВОД, ОТСОРТИРУЙТЕ ее в порядке возрастания и отправьте результаты на ВЫВОД. Повторите для каждой последовательности.
«Финальный босс» Human Resource Machine — очень сложная задача, требующая внимания сразу по нескольким вопросам — выбор алгоритма сбора и вывода данных, алгоритма сортировки и алгоритма подсчета. Ее решение может занять очень много времени и не всем по силам.
Одно из самых лаконичных решений данной задачи выглядит следующим образом:
Смотрим заключительный ролик. Поздравляем, игра пройдена!
***Спасибо за внимание!***
-- HUMAN RESOURCE MACHINE PROGRAM --
a:
COPYFROM 24
COPYTO 20
COPYTO 21
b:
INBOX
JUMPZ c
COPYTO [20]
BUMPUP 20
JUMP b
c:
d:
COPYFROM 24
COPYTO 23
COPYTO 22
BUMPUP 22
e:
COPYFROM 20
SUB 22
JUMPZ i
COPYFROM [22]
JUMPZ h
COPYFROM [23]
JUMPZ f
SUB [22]
JUMPN g
f:
COPYFROM 22
COPYTO 23
g:
h:
BUMPUP 22
JUMP e
i:
COPYFROM [23]
OUTBOX
BUMPUP 21
SUB 20
JUMPZ a
COPYFROM 24
COPYTO [23]
JUMP d