Задача представляет собой довольно простую задачу Quine с изюминкой, вы должны вывести свой исходный код в форме пирамиды. Форма пирамиды определяется ниже:
1
234
56789
ABCDEFG
HIJKLMNOP
QRSTUVWXYZa
bcdefghijklmn
......etc......
Основным ограничением этой задачи является то, что ваша квина должна содержать ровно столько байтов, чтобы не препятствовать рисунку пирамиды. Например, следующие длины программы будут работать:
1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...
Итак, если ваша программа была:
QWERTY
Это не будет действительным, потому что это устроит как:
Q
WER
TY
Однако, если бы ваша программа была QWERTYUIO, было бы хорошо:
Q
WER
TYUIO
правила
- Стандартные лазейки, очевидно, запрещены, не читайте свой собственный источник.
- Пирамида должна быть центрирована, завершающие символы разрешены, но не обязательны.
- Кроме того, любой символ может быть использован для центрирования пирамиды, не обязательно
(char)32
.
- Кроме того, любой символ может быть использован для центрирования пирамиды, не обязательно
- Ваша квинна должна быть в форме пирамиды.
- Он должен сохранять исходный порядок вашего исходного кода.
- Ваш исходный код НЕ может содержать символ, используемый для форматирования пирамиды.
- Например, если ваш исходный код содержит пробел, вам понадобится еще один символ для формата.
- Вы можете использовать комментарии в своей квине, чтобы «добавить» правильный размер.
- Очевидно, что они должны быть выведены как часть квайн.
- Если программа содержит символы новой строки / табуляции, они не являются частью квинуса и должны быть опущены в выводе.
- Форма считается в символах, а не в байтах; если форма искажена, вы делаете это неправильно.
Наименьшая возможная оценка здесь должна быть 4.
code-golf
ascii-art
restricted-source
quine
Урна волшебного осьминога
источник
источник
Ответы:
05AB1E , 36 байт
Попробуйте онлайн!
Если
trailing characters are allowed
также означает в конце вывода,0"D34çýā·<£.c"D34çýā·<£.c
это слой короче на 25 байтов.источник
34ç
это основа всех пятен 05AB1E, не так ли, ха-ха? Кроме того, не уверен, что я чувствую по поводу случайного количества трейлингов новой строки ... Я бы предпочел, чтобы кто-то другой сделал этот вызов (что является нормой, 1 трейлинг / предшествование разрешено?), Который кажется супер на грани.ā·<
я использовал9ÅÉ
(в 25 байт, не думал о конце новой строки ..)Java 11,
324256227 байт-29 байт благодаря @JoKing .
Выходы с начальными пробелами, чтобы сделать треугольник. (Обратите внимание, что пробел между
var s
иint i
являются вкладками, а не пробелами.)Попробуйте онлайн.
Объяснение:
quine -part:
var s
содержит неформатированный исходный код String%s
используется, чтобы поместить эту строку в себя сs.format(...)
%c
,%1$c
И34
используются для форматирования двойных кавычек ("
)%%
используется для форматирования%
s.format(s,34,s)
складывает все вместеЗадача часть:
Который останавливается с
java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226
ошибкой дляString#substring(int,int)
метода, итерации после того, как он напечатал результат ( что хорошо в соответствии с мета ).источник
s=s.format
расставаться, когда вместо этого вы можете иметь формат в цикле%%
в строке и только один%
в реальном коде, но это означает, что комментарии обязательны///
в строке, чтобы строка была достаточно длинной, чтобы перейти к ожидаемой итерации, чтобы напечатать все, прежде чем остановиться наStringIndexOutOfBoundsException
for.substring
. И только с двумя трейлингом//
в конце реальной программы, так как она печатает только два трейлинга//
. :)Python 2 , 81 байт
Попробуйте онлайн!
Eval Quine, который использует пробелы в качестве символа-заполнителя.
источник
;)
Perl 6 , 67 байт
Попробуйте онлайн!
Я использовал пару символов Юникода, чтобы выжать этот дополнительный слой. Выходы с использованием пробелов:
Объяснение:
источник
Python 2 , 169 байт
Используется
0
для форматирования пирамиды.Попробуйте онлайн!
Python 2 , 147 байт
При этом используется правило. Если программа содержит символы новой строки / табуляции, они не являются частью квинуса и должны быть опущены в выводе.
Попробуйте онлайн!
источник
Gol> <> , 36 байт
Попробуйте онлайн!
еще младшая версия, 36 байт
Я чувствую себя так близко к тому, чтобы сделать это на одну строку короче, грррр ....
Попробуйте онлайн!
еще младшая версия, 36 байт
Код этого кода меньше, но, к сожалению, он все равно получается, комментарий занимает оставшуюся часть пространства.
Попробуйте онлайн!
немного младшая версия, 36 байт
Wowza! Хех, я просто использовал это, чтобы заполнить некоторое пространство, но программа работает, чтобы проиграть, я использовал несколько предварительно выдвинутых значений вместо использования переменных!
Попробуйте онлайн!
Старая версия, 42 байта
Это завершающий перевод строки и больше символов, чем мне бы хотелось ...
Я собираюсь играть в гольф это строго ...
Попробуйте онлайн!
источник
Чистый , 256 байт
Попробуйте онлайн!
Практически стандартный quine, удобно также шаблонный quine, с добавленной функцией форматирования.
источник
R ,
169144 байтПопробуйте онлайн!
Удалось укоротить его, перейдя к разбираемой строке, а не к отбывающему выражению. Пришлось использовать переопределение унарного оператора, чтобы получить его под 144, хотя.
источник
C # (интерактивный компилятор Visual C #) , 225 байт
Использует
STX
символ в качестве отступа. Не осознавал, что Кевин Круйссен уже отправил точную копию в java до публикации, пока я не закончу, но я решил опубликовать это в любом случае.Попробуйте онлайн!
источник