Статьи Прохождение Human Resource Machine — с уровня 29 по 41

Прохождение Human Resource Machine — с уровня 29 по 41

Stalxer
Читать в полной версии

Добрый день уважаемые посетители VGTimes.Ru. Сегодня мы закончим разбирать прохождение головоломки Human Resource Machine. Поскольку игра сложная, но интересная, наверняка данный гайд будет полезен.

Посмотреть прохождение Human Resource Machine можно и в других материалах нашего сайта:

Сегодня мы разберем следующие уровни:

  • №29 — Склад;
  • №30 — Хранилище строк;
  • №31 — Обратная строка;
  • №32 — Инвентаризационный отчёт;
  • №34 — Испепелитель гласных;
  • №36 — Упорядочиватель;
  • №38 — Подрыв чисел;
  • №40 — Фабрика простоты;
  • №35 — Уничтожитель копий;
  • №37 — Связанная цепь;
  • №39 — Переназначение;
  • №41 — Этаж сортировки.

Не будем откладывать дело в долгий ящик и сразу перейдем к советам по прохождению Human Resource Machine. Поскольку задачи здесь высокого уровня и практически все имеют большое решение, мы, для удобства, склеили его на одном скриншоте, просто будьте внимательны.

29. Склад

Задача: для каждого ВВОДИМОГО адреса ВЫВЕСТИ соответствующую этому адресу букву на полу. Будьте внимательны при использовании доброй половины функций, ведь теперь у них двойное значение — обратите внимание на квадратные скобки! Само же решение достаточно тривиально:

30. Хранилище строк

Задача: каждая вещь на ВВОДЕ — адрес ячейки на полу. Для каждого адреса ячейки, предоставленного на ВВОДЕ, ВЫВЕДИТЕ запрашиваемый предмет с пола и выводите все последующие предметы с пола до тех пор, пока не достигните нуля.

Несмотря на такое внушительное описание, как и предыдущая «зеленая» задача, это задание довольно простое и решается всего в 7 строк:

31. Обратная строка

Задача: обратите каждую ВВОДИМУЮ нуль-терминированную строку и ВЫВЕДИТЕ её. Повторяйте до тех пор, пока ВВОДИМЫЕ данные не закончатся. Данное задание решается буквально в 10 команд:

32. Инвентаризационный отчёт

Задача: для каждой ВВОДИМОЙ вещи ВЫВЕДИТЕ количество совпадающих с ней вещей на полу.

Первое решение данного задания является скоростным, но имеет 17 строк:

Второе решение несколько медленнее, но имеет 16 строк:

После этого задания смотрим ролик и переходим к следующему.

33. Испепелитель гласных

Задача: отправьте все из ВВОДА на ВЫВОД, за исключением гласных. Решить эту проблему можно за несколько минут, однако, если у вас не получится, вот код из 13 строк:

Теперь перейдем к факультативу (слева от линии).

36. Упорядочиватель

Задача: ввод содержит ровно два слова. Определите, какое из них было первым в алфавитном порядке и отправьте только его на вывод.

Надо признать, что в данном случае придется повозиться — решение содержит 35 строк и кучу переходов, поэтому будьте внимательны, когда будете переносить решение. Оно бы разместилось на трех скриншотах, но мы склеили его в один, для удобства:

38. Подрыв чисел

Задача: каждое ВВОДИМОЕ число разбейте на отдельные цифры и отправьте их на ВЫВОД. Например, число 123 станет цифрами 1, 2 и 3. Данная факультативная задача была решена только в случае количества строк, всего их 29, а лимит — 30:

Испытание на скорость не пройдено, так что я буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.

(картинка будет добавлена позже)

40. Фабрика простоты

Задача: для каждого ВВОДИМОГО числа ВЫВЕДИТЕ его простые МНОЖИТЕЛИ в порядке возрастания. Еще одна сложная задача, требующая длительного обдумывания рабочего алгоритма. Мне удалось решить ее только в части на скорость:

Испытание на количество строк не пройдено, так что я буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.

(картинка будет добавлена позже)

Самое время вернуться к основным заданиям и пробить путь к концовке игры! Начинаем задания справа от линии.

35. Уничтожитель копий

Задача: отправьте всё из ВВОДА на ВЫВОД, за исключением тех значений, которые уже ВЫВОДИЛИСЬ. Избавьтесь от всех дубликатов.

Задача должна иметь два решения — первое, на количество кода, занимает 16 строк из необходимых 17:

А вот второе решение, на скорость, мне найти не удалось, так что буду рад увидеть ваше решение, если такое есть, чтобы добавить его в данный гайд.

(картинка будет добавлена позже)

37. Связанная цепь

Задача: каждая ВВОДИМАЯ вещь — адрес одной из пар. Подайте на ВЫВОД данные этой пары, а также данные всех следующих пар в цепочке. Цепь закончится, когда адрес будет отрицательным.

Очень простая задача, решение которой можно найти за несколько минут, но, если у вас это не получится, вот оно:

39. Переназначение

Задача: каждый ВВОДИМЫЙ номер — адрес ячейки на полу. Отправьте на ВЫВОД координаты этой ячейки, сначала номер столбца, затем номер строки.

Несмотря на кажущуюся сложность, у этой задачи очень простое решение, нужно просто придумать правильный алгоритм и обратите внимание на цифру «4» на полу — она там не просто так. Если что-то не получится, вот универсальное решение, которое занимает 14 строк:

41. Этаж сортировки

Задача: для каждой нуль-терминированной последовательности, подаваемой на ВВОД, ОТСОРТИРУЙТЕ ее в порядке возрастания и отправьте результаты на ВЫВОД. Повторите для каждой последовательности.

«Финальный босс» Human Resource Machine — очень сложная задача, требующая внимания сразу по нескольким вопросам — выбор алгоритма сбора и вывода данных, алгоритма сортировки и алгоритма подсчета. Ее решение может занять очень много времени и не всем по силам.

Одно из самых лаконичных решений данной задачи выглядит следующим образом:

Смотрим заключительный ролик. Поздравляем, игра пройдена!

***Спасибо за внимание!***

Комментарии 18
Оставить комментарий
9 лет
На 41 получилось решение в 33 строки, но только 1497 шагов, как оптимизировать алгоритм?
-- 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


Ответить
9 лет
36 решена не полностью- при одинаковых словах алгоритм не работает
Ответить
9 лет
Возможное решение на основе данного алгоритма, но не оптимальное

-- HUMAN RESOURCE MACHINE PROGRAM --

COPYFROM 23
COPYTO 21
COPYTO 18
COPYFROM 24
COPYTO 22
COPYTO 19
a:
INBOX
COPYTO [18]
BUMPUP 18
COPYFROM [21]
JUMPZ b
BUMPUP 21
JUMP a
b:
c:
INBOX
COPYTO [19]
BUMPUP 19
COPYFROM [22]
JUMPZ d
BUMPUP 22
JUMP c
d:
COPYFROM 23
COPYTO 21
COPYFROM 24
COPYTO 22
JUMP f
e:
BUMPUP 21
BUMPUP 22
f:
COPYFROM [22]
JUMPZ g
COPYFROM [21]
JUMPZ h
SUB [22]
JUMPZ e
JUMPN i
g:
COPYFROM 24
COPYTO 23
h:
i:
j:
COPYFROM [23]
JUMPZ k
OUTBOX
BUMPUP 23
JUMP j
k:
Ответить
9 лет
Можете в Steam-е глянуть, там пишут об этом.
Ответить
9 лет
Есть решение 40 Фабрика простоты с результатом 48/264:

Показать спойлерСкрыть спойлер


Надеюсь, оцените. Кстати, классная идея с проверкой на 4)
Ответить
9 лет
Также есть 36. Упорядочиватель с результатом 31/85:

Показать спойлерСкрыть спойлер
Ответить
9 лет
Решение 35 Уничтожитель копий с результатом 16/166:

Показать спойлерСкрыть спойлер
Ответить
7 лет
Спасибо вам за внимание к игре! Так держать!
Ответить
7 лет
Решение 36 задачи с результатом 34/73:

Показать спойлерСкрыть спойлер
Ответить
7 лет
Решение 40 задачи на 28 строк.

Показать спойлерСкрыть спойлер
Ответить
7 лет
Получилось решение 41 задачи с результатом 31/919.

Показать спойлерСкрыть спойлер
Ответить
Можно даже так
Ответить
5 лет
№38 на скорость. Не причёсано и, возможно, не оптимально — надоело уже ковырять, но способы оптимизации видно и в лимит влазиет. )

Показать спойлерСкрыть спойлер
Ответить
5 лет
№40
Общее решение: 27/391

Показать спойлерСкрыть спойлер
Ответить
5 лет
№40 Оптимизация по коду: 22/431

Показать спойлерСкрыть спойлер
Ответить
5 лет
№40 Оптимизация по скорости: 36/278 (выше в комментах есть более быстрое решение)

Показать спойлерСкрыть спойлер
Ответить
5 лет
№40 №40 Оптимизация по скорости 186/146 (ссылка на текстовый документ, в комментарий алгоритм не влазиет)
Ответить
5 лет
№41 Общая оптимизация 26/673

Показать спойлерСкрыть спойлер
Ответить