Задача
- Достигните конца уровня!
- Бонусные очки, если вы нажмете каждый из блоков (C) oin ровно 2 раза.
Disallowed
- Жесткое кодирование последовательности команд любым способом.
- Ваш любимый "Один символ языка" , который выполняет только одну вещь, решающую этот гольф.
Как
Ваша программа получает уровень ниже (без разрывов строк) через стандартный ввод.
Затем он должен распечатать команды, необходимые для успешного завершения уровня.
Уровень
- S - ваша стартовая позиция.
- E позиция, в которой вы должны быть, чтобы завершить уровень.
- C представляет собой монетный блок с двумя монетами в нем, вам никогда не придется пропустить один из них, чтобы иметь возможность завершить уровень.
- Оба C и _ считаются почтовыми, там сплошная земля не плавающая платформа.
- | - стена, все стены, которые вам нужно подпрыгнуть, чтобы завершить уровень, находятся на высоте не более 1 стены, все, что выше, вы можете рассмотреть пропасть, которую вы не можете Избегайте.
- x - это всплески, угадайте, что произойдет, если вы коснетесь. Шипы всегда будут на один уровень ниже того, что окружает их.
Все уровни имеют высоту 4 строки, каждая из линий - 63 символа. Это составляет 252 символа на уровень.
> ______ ____ ________ ___ <
> C ______| | | | C __| | | | ____E<
>S______ __ ____| | | |_____| |__| |___| <
> xx xx xx <
Примечания: > < просто для иллюстрации границ, они НЕ включены во вкладку вашей программы. Также следите за своим текстовым редактором, так как моя несколько раз прикручивала пробелы.
Команды
- M= Перемещает вас 1 вправо, если нет земли под вами, вы упадете, пока не нажмете. Вы не можете перемещаться во время падения.
- J= Перейти, перемещает вас на 1 для следующих 3 команд или пока вы не нажмете блок (C). После этого вы упадете, пока не достигнете земли. Вы можете прыгать только на земле. Если M приносит вам тот же уровень, что и земля, скачок отменяется.
- O= NOP, заставит вас ждать/ничего не делать. Таким образом, вы можете прыгать с отверстиями и шипами, которые имеют ширину всего в 1 блок (вам не нужно это для уровня выше, но вы получите дополнительные очки, если сможете решить уровни, которые в этом нуждаются).
Решение (с монетными блоками)
Последовательные команды сложены друг на друга.
F указывает, где вы упадете (помните, что вы не можете ничего делать при падении),
MMMF MMMF
M MMMMMMJ MMMMF M MMMMMMMMJ MMMF
M J MMMFMMMF MMMMMMJ| | | |F J MMJ| | | |F MMMMME
SMMMJMJ MJ MMMJ| | | |MMJMJ| |__| |MMJ|
xx xx xx
Результирующая последовательность команд, длина 75 символов:
MMMMJJMMJMMMMJMMMMMMJMMMMMMJMMMMMMJMMMMMMMMMJJMMJMMJMMMMMMMMJMMMMMMMMJMMMMM
Надеемся, что это даст некоторые интересные результаты... и не тонны пламени: O
ИЗМЕНИТЬ
ОК, есть больше возможностей, чем я изначально думал, прошу прощения за все изменения.