Маленький, да удаленький
Apr. 2nd, 2016 11:20 pmВдогонку к посту про псевдографический рекурсивный лабиринт.
Я таки вписал это в три строчки, хотя и с оговорками (конец игры нужно определять органолептически, слетает с ошибкой если не ту кнопку нажать, ну и по мелочам).

Началось переписывание с того что я нашёл другой лабиринт этого же типа, но поменьше (http://skepticsplay.blogspot.com/2010/10/fractal-maze.html
). После нескольких итераций я ужал его до 9x14 знакомест, а это уже такой размерчик что можно попытаться уместить в строку. Плюс строка на логику, строка на инициализацию, как раз могло и получиться. Так и вышло.
Вот он, кстати, красавец:

Цифры внизу -- это отображается стек погружения. Две подкомнаты, 7 входов в каждой. Я без бумажки даже с программкой-плеером не решил. (Правда с бумажкой решил, так что ответ точно есть)
Неожиданно для меня в 4 строки вписалось довольно легко, но дальше процесс застрял. Все грязные трюки какие мог, я применил, но ни в какую.
Писал я его сидя на трибунах на турнире по FIRST Robotics (это очень неудобно, очень шумно и в моём случае ещё и довольно жарко), поэтому как именно оно ужалось я упустил, но это было не красиво и не легко. Вот, например, последний оператор первой строки V=VPEEK(U)-9. Девятка вычитается чтобы можно было в следующей строке при сравнении V с границами можно было использовать меньшие числа. Мне бы было гораздо удобнее (и сэкономилось бы больше места в следущей строке) если бы я мог вычесть 17, но нет: 17 это два знака, а место есть только для одного. А в следующей строчке мне место тоже не просто так понадобилось. Последнее слово там NEXT, не хватало трёх символов, помещалось только N, что не может служить полноценной заменой NEXT. И это уже финальные штрихи, до этого ещё дойти как-то надо было.
В принципе ещё есть резерв: можно перевернуть лабиринт вверх ногами, тогда начальная позиция будет ближе к началу экрана и инициализация "X=284" превратится в "X=45", но я рад что до этого не дошло: при этом лабиринт бы поменялся и большое количество числовых параметров, которые в коде просто в явном виде, пришлось бы пересчитывать.
Я таки вписал это в три строчки, хотя и с оговорками (конец игры нужно определять органолептически, слетает с ошибкой если не ту кнопку нажать, ну и по мелочам).

Началось переписывание с того что я нашёл другой лабиринт этого же типа, но поменьше (http://skepticsplay.blogspot.com/2010/10/fractal-maze.html
). После нескольких итераций я ужал его до 9x14 знакомест, а это уже такой размерчик что можно попытаться уместить в строку. Плюс строка на логику, строка на инициализацию, как раз могло и получиться. Так и вышло.
Вот он, кстати, красавец:

Цифры внизу -- это отображается стек погружения. Две подкомнаты, 7 входов в каждой. Я без бумажки даже с программкой-плеером не решил. (Правда с бумажкой решил, так что ответ точно есть)
Неожиданно для меня в 4 строки вписалось довольно легко, но дальше процесс застрял. Все грязные трюки какие мог, я применил, но ни в какую.
Писал я его сидя на трибунах на турнире по FIRST Robotics (это очень неудобно, очень шумно и в моём случае ещё и довольно жарко), поэтому как именно оно ужалось я упустил, но это было не красиво и не легко. Вот, например, последний оператор первой строки V=VPEEK(U)-9. Девятка вычитается чтобы можно было в следующей строке при сравнении V с границами можно было использовать меньшие числа. Мне бы было гораздо удобнее (и сэкономилось бы больше места в следущей строке) если бы я мог вычесть 17, но нет: 17 это два знака, а место есть только для одного. А в следующей строчке мне место тоже не просто так понадобилось. Последнее слово там NEXT, не хватало трёх символов, помещалось только N, что не может служить полноценной заменой NEXT. И это уже финальные штрихи, до этого ещё дойти как-то надо было.
В принципе ещё есть резерв: можно перевернуть лабиринт вверх ногами, тогда начальная позиция будет ближе к началу экрана и инициализация "X=284" превратится в "X=45", но я рад что до этого не дошло: при этом лабиринт бы поменялся и большое количество числовых параметров, которые в коде просто в явном виде, пришлось бы пересчитывать.