задача
Вы отвечаете за создание компаса, в некотором роде.
Представьте свой исходный код как «стрелку» компаса, где работа в разных направлениях дает отчетливый результат.
Поддерживаемые ориентации исходного кода: север, восток, юг и запад.
пример
Допустим, у вас есть исходный код:
ABCD
J K
WXYZ
Мы рассмотрим ориентацию на север, вращение на 90 градусов по часовой стрелке указывает на восток:
W A
XJB
Y C
ZKD
вращение снова указывает на юг:
ZYXW
K J
DCBA
и наконец, последний поворот на запад:
DKZ
C Y
BJX
A W
При запуске каждый из приведенных выше примеров кода должен выводить один, отдельный печатный символ ASCII по вашему выбору.
Заметки
Ваш код не должен вводить.
Пустые места или новые строки не разрушаются / исчезают при вращении.
Лидирующие / завершающие новые строки в порядке.
Ответы могут быть целыми программами или функциями, поэтому выводятся в STDOUT или возвращают результат функции.
Применяются стандартные правила игры в гольф ; кратчайший ответ в байтах побеждает!
источник
Ответы:
Желе , 2 байта
Попробуйте онлайн!
Обратите внимание, что основной записью для программы Jelly является ее последняя ссылка, где любой символ новой строки будет разбивать ссылки), ни одна из двухстрочных программ фактически не имеет доступа к своей верхней ссылке.
Четыре полных программы, все из которых неявно печатают свой результат:
Север :
Восток :
Юг :
Запад :
источник
Japt ,
32 байтаКаким-то образом я нашел чрезвычайно хакерское 2-байтовое решение ...
Северные выходы
0
:Поскольку неявного ввода не существует, по умолчанию используется
0
.g
on число возвращает знак числа независимо от его аргументов ("y"
в данном случае).Восточные выходы
2
:В многострочной программе первая строка устанавливает ввод для его результата. Это в основном неоперативный, так как
g
на0
это0
. Затемy
возвращает GCD для0
и ..., поскольку в нем отсутствует аргумент, по умолчанию используется значение2
(спасибо, @Oliver !). Это дает2
в качестве выхода.Южные выходы
g
:y
Как и прежде, это GCD. Так как gcd (0, x) равен x для любого значения,y
on0
берет на себя возможность просто вернуть свой аргумент. В этом случае аргумент есть"g"
, который является результатом.Западные выводы
1
:y
на 0, как и раньше, возвращает2
. Затем это передаетсяg
, который (как уже обсуждалось) является функцией знака на числах. Поэтому результат есть1
.источник
Java (OpenJDK 8) ,
73094421855 байт-2888 байт благодаря Leaky Nun
-3566 байт благодаря Wheat Wizard
Попробуйте онлайн!
Старая версия
Прямой подход с комментариями, обертывающими квадрат кода ^ 2, это можно сделать практически на любом языке.
(более читаемый) пример в Python
источник
interface M{static void main(String[]a){System.out.println(0);}}
вместо этого, чтобы сохранить несколько байтов.Brain-Flak , 33 байта
Попробуйте онлайн!
Brain-Flak , 33 байта
Попробуйте онлайн!
Brain-Flak , 36 байт
Попробуйте онлайн!
Brain-Flak , 38 байт
Попробуйте онлайн!
Brain-Flak , 41 байт
Попробуйте онлайн!
источник
Алиса , 17 байт
Выходы
1
. Попробуйте онлайн!Выходы
x
. Попробуйте онлайн!Выходы
5
. Попробуйте онлайн!Выходы
3
. Попробуйте онлайн!источник
Befunge,
1713 байтЯ думал, что Befunge будет весело для геометрической задачи. Здесь есть тривиальное решение 4х4, похожее на другое (мне нужно 3 команды), но мне удалось немного лучше.
Редактировать: забыл о новых строках
Редактировать 2: понял, что я мог бы создать кошку
Редактировать 3: кот мертв
RIP котенок: <
источник
05AB1E ,
53 байтаСевер , восток , юг , запад
источник
Y'X
будет работать, но я должен попробовать это все еще.Y'X
также действует. Все еще ищу 2-байтовый хотя; ни одна из «точечных команд» не работает для этого, поэтому я сомневаюсь, что она существует.10
сработало бы, если бы им было разрешено выводить несколько символов; P. *C (gcc) ,
283279209 байтовПопробуйте онлайн!
Тот же старый трюк с комментариями здесь, но, по крайней мере, в С это не так важно ;)
W
направление и -70 (!) байтов благодаря комментариям ETHproductionsисточник
);}
на строку ниже, вот так (хотя я не проверял повороты)W
программа в вашей текущей настройке в настоящее время дает сбой, потому чтоsn
после фактического кода есть дополнительные . По-видимому, вы можете исправить это, изменив косую черту прямо передpm
верхней строкой на точку с запятой.Лабиринт , 9 байт
Печать
0
. Попробуйте онлайн!Печать
3
. Попробуйте онлайн!Печать
1
. Попробуйте онлайн!Печать
2
. Попробуйте онлайн!объяснение
Каждая программа начинается с первого не пробела в порядке чтения (т. Е. Вверху слева или вверху по центру), двигаясь на восток. Для первой программы:
Для второй программы:
Для третьей программы:
Для четвертой программы:
источник
Wumpus , 7 байт
Печать
0
. Попробуйте онлайн!Печать
1
. Попробуйте онлайн!Печать
3
. Попробуйте онлайн!Печать
2
. Попробуйте онлайн!объяснение
Первая программа достаточно проста:
O
печатает неявный ноль и@
завершает программу.Начиная со второй программы, нам нужно взглянуть на треугольную сетку, чтобы понять поток управления:
Для третьей программы:
Четвертый - это то, где это становится действительно прикольным. Пунктирные линии показывают ячейки, которые не выполняются, потому что они пропускаются
$
:источник
PowerShell ,
2011 байтЗлоупотребляет comments (
#
) как сумасшедший, и тот факт, что одно число, помещенное в конвейер, получает вывод как есть. Вышеуказанные отпечатки1
. Попробуйте онлайн!Отсюда вы можете легко увидеть, что каждое вращение дает только одно число, которое находится «слева» от комментариев, и, таким образом, есть только одно число, которое будет выводиться за вращение.
Сохранено 9 байт благодаря Wheat Wizard !
источник
Звездный , 34 байта
Или с пробелами, показанными как дефисы, чтобы вы могли их видеть:
Попробуйте онлайн!
Команды в Starry - это
+
,.
и некоторые другие вещи, и то, что они делают, определяется тем, сколько пробелов перед ними: a+
с n пробелами выталкивает n −5 в стек, а.
с четным числом пробелов печатает его. Вz
ы и новые строки игнорируются полностью.Перед первым есть 6 пробелов,
+
поэтому он нажимает 6−5 = 1 и.
печатает его.И повороты:
Попробуйте онлайн! Это печатает "8".
Попробуйте онлайн! Это печатает "2".
Попробуйте онлайн! И это печатает «3».
источник
постоянный ток , 9 байт
Попробуйте онлайн!
Я думаю, что его очевидность является частью очарования.
источник
Пакетный, 90 байтов
Пакет не имеет комментария. Для комментариев из всей строки,
:
работает, так как он вводит метку, но мне все еще нужно что-то, чтобы завершитьecho
команду, будучи неактивным в обратном порядке.&:
кажется, что это работает, и это все, что мне нужно здесь, но это действительно сбивает с толку Пакет, выдает ошибку, если я не ставлю:
перед@
следующей строкой, а также как-то забывает напечатать новую строку.источник
МАТЛАБ,
29 17 511 байтПоняв, что вопрос требует отдельных символов ASCII, а не просто отдельного вывода, вот подход MATLAB, который сделает именно это:
Это будет неявно печатать 1, 2, 3 или 4 в зависимости от поворота.
источник
Кардинал ,
20 17 1211 байтПопробуйте онлайн!
Все это время и никто не ответил в кардинал? Это первый вывод
0
.восток
Попробуйте онлайн!
Выходы
1
.юг
Попробуйте онлайн!
Выводит пробел.
запад
Попробуйте онлайн!
Выходы
v
.источник
SOGL V0.12 , 4 байта
Выходы
1
, попробуйте здесь!Выходы
H
, попробуйте здесь!Выходы
5
, попробуйте здесь!Выходы
6
, попробуйте здесь!источник
JS, 17 B
Выходы:
север: 2,
восток: 3,
юг: 4,
запад: 0.33333333333….
(как в: 2, 3/1, 4, 1/3)
источник
Извините, я имел в виду:
и 28B. И выводит как 0,5, 3, 2, 0.
источник
JavaScript (ES6), 86 байт
Выходы 0 для Севера, 1 для Востока, 2 для Юга и 3 для Запада.
Показать фрагмент кода
источник
MATL , 11 байт
Попробуйте онлайн!
Давайте начнем это в MATL. Основная проблема заключается в том, что MATL просто не работает, если функция требует ввода, если стек пуст. Может быть что - то умное с модификаторами нравится
X
,Y
,Z
и&
мог бы сделать что - то более короткое, но я не мог найти подходящую комбинацию.Объяснение: все символы помещают в стек одно целое число и
x
удаляют все, кроме последнего.источник
Perl, 49 байт
Код 48 байтов + 1 для
-p
.Предполагается пустой ввод, который TIO не поддерживает, поэтому новая строка добавляется на место и не используется. Отпечатки Н , Е , S , W .
Попробуйте онлайн!
источник
C (gcc) , 120 байтов
Я надеялся на большее взаимодействие между вариантами.
к северу
восток
юг
запад
источник