Продолжайте работу в том же проекте brainfuck.
В классе BrainfuckLoopCommands реализуйте метод, регистрирующий следующие команды в виртуальную машину:
Символ | Значение |
---|---|
[ | (Начало цикла) Перескочить по программе вправо на соответствующий (с учетом вложенности) символ ] , если текущий байт памяти равен нулю. Продолжать исполнение с этого символа. |
] | (Конец цикла) Перескочить по списку инструкций влево на соответствующий (с учетом вложенности) символ [ , если текущий байт памяти НЕ равен нулю. Продолжать исполнение с этого символа. |
Например, программа ++++++++[>++++++++<-]>+.
выводит букву A
(ASCII-код 65 получается увеличением 8 раз второй ячейки на 8, а потом добавлением ещё единицы).
Детали реализации инструкций восстановите по тестам в классе BrainfuckLoopCommandsTests. Сделайте так, чтобы все тесты в этом файле проходили.
1 2 3 4 5 6 7 |
// Вставьте сюда финальное содержимое файла BrainfuckLoopCommands.cs using System; using System.Collections.Generic; using System.Linq; namespace func.brainfuck { |
Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂