Входные данные не должны быть обязательными, а выходные данные должны иметь вид " All your base are belong to us
".
ограничения
Нет внешних ресурсов.
Плюс минимум два из следующих:
Вы не можете использовать «a», «b», «t», «u» или «y» в любом случае в своем коде (бонус -10 к вашей игре в гольф, если вы можете это сделать)
Вы не можете использовать «l», «o», «s», «e» или «r» в любом случае в своем коде (бонус -20 к вашей игре в гольф, если вы можете это сделать)
Вы не можете использовать «n», «g», «0», «1» или «2» в любом случае в своем коде (бонус -30 к вашей игре в гольф, если вы можете это сделать)
Так, например, если вам удастся выполнить код из 40 символов и использовать правила 1 и 2, ваш счет в гольфе составит 40 - 10 - 20 = 10 символов.
Наименьшая оценка кода выигрывает ... Удачи!
string
нарушает все три ограничения, иchar
,var
иWrite
нарушает два из них каждое. Это будет трудно получить правильные ответы, но, может быть, Barinfuck.print(input())
(python)? Пользователь должен будет ввести правильную строку, но это не запрещено.stdin
возможно, является «внешним источником».Ответы:
SOGL V0.12 , 15 - 60 = -45
Попробуй здесь!
šz█P'zUS½█│β3‘
это сжатая строкаall your base are belong to us
, а потому , что точная строка содержали сжатую0
, это разделение на 3 часть:all your base are
,belong to us
(который стоил один байт , но дал бонус -30 байт). Первая и последняя строки сжимаются английским словарем SOGL и неявно соединяются пробелами. Остальное⁾
встроено в простое предложение.Обратите внимание, что SOGL датирует эту проблему, но теперь это разрешено.
источник
GolfScript, -22 (38 символов, -60 бонус)
источник
"..."
определяет строку, а блок{}%
выполняет операцию сопоставления для всех символов. Внутри блока значение ascii доступно в стеке и67-
вычитает 67 из каждого значения ascii.Скользящий , −40
丟
вперед, изменив счет до -39.источник
"input is not required"
как я уже сказал, я бы бросил 丟 впереди и изменил счет до -39, но большие усилия! Особенно учитывая, что ты изобрел язык, чувак!JavaScript - 140 байт - 60 бонусов = 80 баллов
Запустите в Firefox.
Я знаю, о чем ты думаешь. Нет, это не те персонажи, которые указаны в вопросе. Это персонажи с кароном или хачеком (выбираются случайным образом из списка диакритических знаков). Несмотря на то, что они комбинируют знаки, они не являются двумя отдельными персонажами
источник
String.fromCharCode(65,108,108,32,121,111,117,114,32,98,97,115,101,32,97,114,101,32,98,101,108,111,110,103,32,116,111,32,117,115);
APL (43 - 30 - 20 = -7)
Это удовлетворяет правилам 2 и 3.
источник
INVALID TOKEN
ошибку .... возможно, от начального и хвостового символа до AV ... Есть ли другое место, где я могу это проверить ...?Brainfuck, 267 - 60 = 207
источник
HTML / CSS 70
http://jsbin.com/EjekuvuF/1/
Я думал, что у меня все хорошо с перевернутым типом, но потом понял, что не могу соответствовать ни одному из вспомогательных правил с настоящим HTML / CSS. Ну что ж.
ОБНОВИТЬ:
Пользователь Flame предложил более кросс-браузерное совместимое решение:
http://jsbin.com/EjekuvuF/6
источник
transform:rotate(.5turn)
разрешается ошибка синтаксиса ... Мне нравится воображение,MATLAB, Все бонусы: Оценка -20 (40-60)
РЕДАКТИРОВАТЬ:
Обратите внимание, что я не уверен, каковы системные требования для запуска, протестировано на Windows. Для тех, кто борется за копирование, можно сгенерировать похожий код:
Если бы было разрешено запрашивать что-либо в качестве входных данных, конечно, было бы возможно решение с меньшим количеством символов (но также без бонуса).
источник
input
. Второй ответ (афаик) просто не соответствует действительности.input('')
Вызов не заканчивается точкой с запятой, следовательно , он будет генерировать выходной сигнал.prompt()
"dd
, но, возможно, это считается внешним ресурсом. Так же, как и пользовательский ввод.,
,E
9/
52
E"
!3
%E
!2
%E
"%
,/
.'
E4
/E
5`3 Я могу понять первый ответ, но второй ответ требует ввода, который, как я сказал, не был" обязательным "k (-7 = 53 - 60)
(#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";
не включает завершающий символ новой строки, может быть добавлен за один дополнительный символ:
(-#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";
досадно, единственные смещения, которые работают для этого трюка, это 154 и 155
редактировать:
если достаточно отобразить строку (а не распечатать ее), как я подозреваю, решение APL работает (оно не работает на http://tryapl.com/ , поэтому я не могу проверить его должным образом), это
который -12 = 48 - 60. Могу ли я получить решение о том, достаточно ли этого?
источник
постоянный ток,
97 - 60 = 3791 - 60 = 3188 - 60 = 2881 - 60 = 21Улучшенная версия (основная идея здесь - изменить базу ввода, чтобы увеличить шансы найти полезное большое число без проблемных цифр):
В базе 7 все это может стать одним числом! Нижние основания, естественно, менее компактны, но отсутствие операций по исправлению здесь компенсирует это.
Мой первый раствор используется база 10. Мой второй использовали смесь основания 9, 10, 12, 13 и 15. Это один находится в базе 7. Я действительно чувствую , что все базы являются принадлежат мне.
Последний, серьезно: Base 13 отлично работает в первом сегменте, а затем Base 7 для остальных.
источник
Python REPL,
12211698 символов - 30 бонусов =928668 очковЯ мог бы избавиться от нулей в Python 3.3, заменив '
\40
' на\N{SP}
, но, увы,N
это не разрешено.Изменить : Вдохновленный этим ответом , я сократил его, заменив
\x40
на. Кроме того, так как я уже использовать
1
, заменив\156
наn
и\x67
наg
укорачивает ему еще 6 символов , а не подвергаясь никакого дополнительного штрафа.источник
.py
файл и выполните его, выходных данных нет.Brainfuck,
205203 - 60 =145143 байтаЧитаемая версия:
источник
Befunge 98: 122 - 60 = 62
Вычисляет значения ascii, затем печатает их. Мне все еще нужно попробовать другие методы формирования чисел, чтобы увидеть, есть ли более короткие пути.
источник
Питон, 195-40 = 155
источник
Рубин, 121 - 50 = 71
Немного грубой силы, но большинство милых методов исключено:
Нарушает правило # 1 из-за A in
pack
, остальные два должны быть в порядке.источник
<<
в своем ответе.{ba, z} sh,
67 - 40 72 - 6061 - 40 = 21Черт возьми, оказывается, у меня
r
там было то, чего я не заметил, так что бонус 20 не применяется!источник
$'\x74\x72'
могут использоваться непосредственно в качестве имени команды, сохраняя вам 8 символов для$(m4<<<)
. Разве это не работает для вас?\x72
в качестве замены дляr
вас дает бонус в 20 баллов за счет потери бонуса в 30 баллов (для2
)2
использованном там, дай мне посмотреть, смогу ли я найти способ избавиться от него и избежать потери бонусов.tr
считается ли это внешним ресурсом?C, 75 байтов - 60 = 15
Спасибо @gastropner за снижение баллов с 50 до 33 и с 19 до 15!
Принимает адрес массива char в качестве входных данных и записывает строку в массив.
Попробуйте онлайн!
Звоните с:
Выход:
Старая версия (90 байт - 40 = 50):
источник
*q,i,j;x(p){if(j="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9"[i++])*(q=p)=j^74,x(++p);}f(p){i=3-3;x(p);}
i=i<30
еще на 2 байта.0
.JavaScript
(306 символов - 60 бонусов = 246)(206 символов - 50 бонусов = 156)(123 символа = 173 символа - 50 бонусов)
Что-то вроде nooby, возможно, могло бы принести больше пользы ... Дайте мне знать, если я что-то набил, это предупреждает: "Вся ваша база принадлежит нам". Это также только ASCII.
Если вы посчитаете саму консоль как выходной, это также будет считать (57 с бонусом):
источник
x=(c.t+c)[6]
немного корочеeval
может быть легче взломатьBrainfuck, (227 - 60 = 167)
источник
+++++ +++++
нужно? Это может быть 226 байт.PHP (35 - 60 = -25 байт)
HOW LOW CAN YOU GET ?
[1] [2][1] Эта программа может быть декодирована с использованием
xxd -r
.[2] Да, тяжелое решение повторно использовать здесь. Я думаю, что это ... третья проблема, которую я решил таким образом. Возможно, мне следует перейти к чему-то другому, но дело не в том, что это не очень хорошо для проблем, которые запрещают вам использовать большинство персонажей.
источник
~
.Баш, 52 - 10 - 30 = 12
Следующее должно быть выполнено в (все еще довольно распространенной) среде ISO-8859-1:
Это звонки
tr
, которые переводят символы подходящим способом. Мне пришлось либо использоватьr
и нарушать правило 2, либо использовать цифру в escape и нарушать правило 3. Так как 3 дает больше бонусов, я выбрал первое.источник
tr
внешний ресурс?Pure Bash (без внешних ресурсов), 141 персонажа - 50 бонусов = 91
Намеренно отбрасывая 10-балльный бонус, чтобы получить лучший общий балл.
Это работает на любой
bash
версии 3.00.15 или более поздней версии, которую я пробовал.Как это работает
Здесь нет ракетостроения - только
bash
расширения той или иной формы:[012]
. например,$'\x65'
дает намe
Z=({k..v})
). Начало раскрытия фигурной скобки выбирается тщательно, чтобы индексы символов, которые нам нужны, не содержали[012]
. например,${Z[7]}
дает намr
.bash
достаточно гибок, чтобы позволить его командам быть составленными из содержимого нескольких строк. Так$f$'\x63'h$i
расширяетсяecho
.Предыдущий ответ с полным бонусом, но худшим общим счетом:
Pure Bash (без внешних ресурсов), 193 символа - бонус 60 = 133
Я знаю, что это не победит, но я хотел доказать себе, что это возможно
bash
, удовлетворяя при этом всем требованиям:Это требует довольно недавней версии
bash
для${c^}
расширения параметра. 4.2.25 хорошо, но 3.2.48 - нет.источник
Постскриптум, 364 - 40 = 324
Без этого я бы не смог
loser
, конечно. :)Это начинается с кодирования текста в виде строк base-36:
А затем арифметическое удаление 1 и 0 и 2. Затем строки могут быть восстановлены с помощью
36 <string-buf> cvrs
, но это дает буквы в верхнем регистре, поэтому нам нужно перебрать и добавить 0x20, чтобы сделать их строчными.Операторы
cvx exec
позволяют нам выполнять строковые фрагменты двоичных кодированных токенов операторов в различных кодировках. Проще всего кодировать оператор в шестнадцатеричном виде,<92??>
но там есть 2! Таким образом, кодировка «первого уровня» - ascii85. Затем любые строки, которые по-прежнему содержали запрещенные символы, проходили дополнительные уровни hex -> ascii85 -> hex -> ascii85.источник
Brainfuck, 306 - 60 = 246
источник
PHP, 186 - 10 - 30 = 146
Я должен был стать немного творческим;)
источник
<?=
вместо echo (4), вы можете сохранять повторяющиеся буквы в переменных ('l', ''). используйте54*2
вместо54+54
54*2
потому что он имеет2
в себе, поэтому я мог сделать это только с теми, у кого было 3 или выше, имеет фактор. Если я использую десятичную дробь, то символов не меньше.chr(68+33)
иchr(38*3)
буквальнымиe
иr
.Питон, 181 - 40 = 141
[Я использую версию 2.7.2 YMMV - встроенный,
file
ушел в Python 3.X]источник
Python (104 - 30 = 74)
И оценка:
источник
Свинка 150 -
60 = 90.40 = 110Я не уверен, что можно было бы сделать это короче (в целом), не получив ни одного бонуса за код - моя цель была немного меньше на краткости и немного больше на -60 ... Мне понравилась задача не использовать любой из запрещенных символов.
И ... я облажался - пропустил начальную команду "S". : - /
В любом случае, вот версия «без правил» - расширение переменных.
И это дает ему 177-60 = 117. Таким образом, нарушение правила центра все же дало мне более низкий общий балл.
источник
Perl 5, 99 - 50 = 49
Подпрограмма, которая возвращает требуемую строку:
Посмотрите это напечатано так:
источник
BF-RLE , 146 - 30 = 116
источник