Какие знания нужны, чтобы пройти игру Human Resource Machine, целиком основанную на алгоритмах и являющуюся метафорой языка ассемблера?
Вопрос к тем, кто прошел игру.
У меня сложности начались где-то с 13-ой комнаты (комнаты - уровни в этой игре).
Сравнивание чисел, подающихся на вводе, стало весьма сложной задачей с имеющимся инструментарием (inbox, outbox, copyfrom, copyto, add, sub, jump, Jump if zero).
Вряд ли игра рассчитана на тех, кто с языком ассемблера "на ты".
Поэтому, хочу разобраться в том, что нужно иметь в голове, чтобы решить задачи из этой игры. Ответ "нужно иметь в голове логику" не подходит, потому что из более простой алгоритмической игры «Algo Bot» задачи я решаю без таких затруднений, как задачи из «Human Resource Machine».
Подсказка-Спойлер. Есть только одна логическая операция сравнения "jump if zero" значит надо любую логику сравнения сводить к сравнению с нулем.
Например чтобы сравнить равенство двух чисел надо их вычесть и делать jump if zero.
Ассемблер знать необязательно, т.к. здесь обычная логика с условными и безусловными переходами.
Да никакие, там задачи пустяковые, это обучалка для детей (и для тех, кто очень сильно привык к высокоуровневому программированию и сталкивается с большими сложностями, если нужно сделать что-то, чего нет в его любимом ЯП из коробки).
Возможно, знания базовых алгоритмов ближе к концу понадобятся.
Ну и основы математики, если в игре нет умножения - то умножать придётся многократным сложением в цикле, а если нет сравнения - то вычислять разницу и смотреть на ноль/знак.
Может быть, также понадобятся знания простых структур данных, как очередь и стек (но по поводу этого - не помню точно)
S_ith, прошёл, но пару лет назад, не помню уже, что в этой конкретно игре есть, а чего нет.
Сейчас ради интереса откопал эту игру, загрузил сейв, задания пройдены все (но не все из них пройдены за оптимальный объём кода и кол-во тактов). Да, память меня не подвела, умножения и сравнения двух операндов в этой игре действительно нет (есть сравнение с нулём и проверка на знак). Самый сложный из алгоритмов, которые нужно реализовать, это сортировка нуль-терминированной последовательности и разбивка числа на простые множители.
Мне больше по душе игры от Zachtronics, они хардкорнее и заставляют больше думать и больше извращаться (в хорошем смысле этого слова).