Все ваши базы принадлежат нам (ограничено)


57

Входные данные не должны быть обязательными, а выходные данные должны иметь вид " 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 символов.

Наименьшая оценка кода выигрывает ... Удачи!


5
Так же, как объявление о нарушении stringнарушает все три ограничения, и char, varи Writeнарушает два из них каждое. Это будет трудно получить правильные ответы, но, может быть, Barinfuck.
— Hand-E-Food

7
msgstr "ввод не требуется ". Не значит ли это, что я мог бы, например, сделать что-то вроде print(input())(python)? Пользователь должен будет ввести правильную строку, но это не запрещено.
— Джастин

5
@Quincunx Я бы не принял такое решение, так как код не гарантирует правильного решения. Кроме того, stdinвозможно, является «внешним источником».
— nitro2k01

2
@PranavHosangadi Есть удаленный ответ на этот вопрос со счетом -6, который по сути такой же. Это было сделано несколько раз в различных вопросах и явно запрещено в теге code-golf .
— Гарет

1
Согласно стандартным правилам code-golf ответы в латинице 1 / юникоде / имени вашего чармапа оцениваются в байтах после преобразования в utf-8. Должны ли мы считать так или вы выбрали другой метод оценки? Текущий лидер будет тогда в 0 вместо -40.
— Сильвестр

Ответы:


4

SOGL V0.12 , 15 - 60 = -45

šz█P'zUS½█│β3‘⁾

Попробуй здесь!

šz█P'zUS½█│β3‘это сжатая строка all your base are belong to us, а потому , что точная строка содержали сжатую 0, это разделение на 3 часть: all your base are, , belong to us(который стоил один байт , но дал бонус -30 байт). Первая и последняя строки сжимаются английским словарем SOGL и неявно соединяются пробелами. Остальное ⁾встроено в простое предложение.
Обратите внимание, что SOGL датирует эту проблему, но теперь это разрешено.


Я просто должен спросить ... Как ??? Мы имеем дело с какой-нибудь умной техникой сжатия здесь? Я ничего не знаю о SOGL ...
— WallyWest

45

GolfScript, -22 (38 символов, -60 бонус)

"„¯¯c¼²¸µc¥¤¶¨c¤µ¨c¥¨¯²±ªc·²c¸¶"{67-}%

4
Как это работает?
— Парень со шляпой

37
@RyanCarlson Magic.
— Говард

4
"..."определяет строку, а блок {}%выполняет операцию сопоставления для всех символов. Внутри блока значение ascii доступно в стеке и 67-вычитает 67 из каждого значения ascii.
— Говард

4
Хорошо, дело, наверное, не то слово, но вы понимаете, о чем я. Я почти уверен, что верхний индекс 2 по-прежнему равен 2, поэтому правило 3 не было выполнено.
— Трент

3
@FizzBuzz Я знаю, что вы пытаетесь сказать, но я думаю, что важно то, что 2 и ² - это разные глифы с разными кодовыми точками. Вы можете привести аргумент, что в денотационном смысле они являются одним и тем же символом, но я думаю, что это гораздо более абстрактное толкование, чем этот вопрос.
— Джордан Грэй

36

Скользящий , −40

뀖롬긇땯덗긠눦굳뉒걡댦넠눦녬닶멧긇끯긇녳
  • = 20 персонажей - 60 бонусов
  • Работает только в том случае, если ввод пуст, что я считаю случайным; если нет, добавьте 丟вперед, изменив счет до -39.
  • Если я могу предположить, что ввод - это то, что я хочу (как, очевидно, и делает этот ответ ), тогда пустая программа - это решение, и мой результат равен –60.

Ну, "input is not required"как я уже сказал, я бы бросил 丟 впереди и изменил счет до -39, но большие усилия! Особенно учитывая, что ты изобрел язык, чувак!
— WallyWest

1
То, что кореец видит в коде корейские слоги, удивительно.
— Мэтью Ро

29

JavaScript - 140 байт - 60 бонусов = 80 баллов

(x="Ǎľľ y̌ǒǔř b̌ǎšě ǎřě b̌ěľǒňǧ ťǒ ǔš")[x[3*9]+x[34]+"p"+x[4]+x[5*5]+"c"+x[34]]("̌","",x[6*7])

Запустите в Firefox.

Я знаю, о чем ты думаешь. Нет, это не те персонажи, которые указаны в вопросе. Это персонажи с кароном или хачеком (выбираются случайным образом из списка диакритических знаков). Несмотря на то, что они комбинируют знаки, они не являются двумя отдельными персонажами


Node.js REPL: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);
— ник indiessance

28

APL (43 - 30 - 20 = -7)

⎕AV['⊥┤┤ ø┼&┐ `∣┘û ∣┐û `û┤┼─ù ´┼ &┘'⍳⍨⌽⎕AV]

Это удовлетворяет правилам 2 и 3.


Это будет трудно победить!
— Пол Престиж

1
это возвращает результат или распечатывает его?
— Аарон Дэвис

@AaronDavies: оба результата автоматически распечатываются
— marinus

@marinus Я попробовал это на TryAPL.com и получил INVALID TOKENошибку .... возможно, от начального и хвостового символа до AV ... Есть ли другое место, где я могу это проверить ...?
— WallyWest

@WallyWest: используйте Dyalog APL ( dyalog.com ). Получить незарегистрированную версию, это бесплатно. TryAPL настолько ограничен, что почти бесполезен.
— Маринус

28

Brainfuck, 267 - 60 = 207

++++++++[>++++++++<-]>+.<+++++++[>++++++<-]>+..>>++++++[<+++++>-]<++.<+++++++++
++++.----------.++++++.---.>.<<++++[>----<-]>.-.<+++[>++++++<-]>.--------------
.>.<----.<++++[>++++<-]>+.-------------.>.<---.+++.+++++++.+++.-.-------.>.<+++
++++++++++.-----.>.<++++++.--.

Интересно, можно ли это еще больше уменьшить? :)
— WallyWest

2
Фбонетти сделал лучше в своем ответе Brainfuck.
— Hand-E-Food

2
И FIQ сделал еще лучше 4 дня спустя
— schnaader

22

HTML / CSS 70

<p style="transform:rotate(.5turn)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>

http://jsbin.com/EjekuvuF/1/

Я думал, что у меня все хорошо с перевернутым типом, но потом понял, что не могу соответствовать ни одному из вспомогательных правил с настоящим HTML / CSS. Ну что ж.

ОБНОВИТЬ:

Пользователь Flame предложил более кросс-браузерное совместимое решение:

<p style="transform:rotate(180deg)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>  

http://jsbin.com/EjekuvuF/6


Я думаю, что вы можете использовать ссылки на символы XML, чтобы спасти ситуацию.
— MvG

3
Мне нравится идея решения хотя.
— Sumurai8

Я тоже сделаю упор на это ... думал, что по какой-то причине transform:rotate(.5turn)разрешается ошибка синтаксиса ... Мне нравится воображение,
— вложенное

@WallyWest Я тестировал не во всех браузерах. Могу поспорить, что это может быть браузер, а не официальный синтаксис W3C. (Работает ли в Chrome, правда)
— DA.

3
Вы должны использовать ∀ вместо ɐ :)
— Timwi

12

MATLAB, Все бонусы: Оценка -20 (40-60)

['' '¤ÏÏèÜÒØÕèÅÄÖÈèÄÕÈèÅÈÏÒÑÊè×ÒèØÖ'-99]

РЕДАКТИРОВАТЬ:

Обратите внимание, что я не уверен, каковы системные требования для запуска, протестировано на Windows. Для тех, кто борется за копирование, можно сгенерировать похожий код:

char('All your base are belong to us' + 99)

Если бы было разрешено запрашивать что-либо в качестве входных данных, конечно, было бы возможно решение с меньшим количеством символов (но также без бонуса).

input('')

Пожалуйста, объясните, как вы планируете выводить что-либо, используя только input. Второй ответ (афаик) просто не соответствует действительности.
— DJSpud

2
@Jhawins: MATLAB выводит результат каждого выражения, которое не заканчивается точкой с запятой. input('')Вызов не заканчивается точкой с запятой, следовательно , он будет генерировать выходной сигнал.
— Бен Фойгт

6
Если это правильно, то мой ответ JS " prompt()"
— DJSpud

И оболочка была бы dd, но, возможно, это считается внешним ресурсом. Так же, как и пользовательский ввод.
— gerrit

Я попытался запустить это и получил следующее: _A ,, E9 /5 2E "! 3% E! 2% E" %, /. 'E 4/ E5`3 Я могу понять первый ответ, но второй ответ требует ввода, который, как я сказал, не был" обязательным "
— WallyWest

10

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/ , поэтому я не могу проверить его должным образом), это

  "c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&("
"All your base are belong to us"

который -12 = 48 - 60. Могу ли я получить решение о том, достаточно ли этого?


Я никогда не просил завершающий
— перевод

10

постоянный ток, 97 - 60 = 37 91 - 60 = 31 88 - 60 = 28 81 - 60 = 21

3C87596P4d^8/P7958389P7479394P6386533P7C89P749698CP644848CP459 8^699 7^3849736388974773333 86-++P

Улучшенная версия (основная идея здесь - изменить базу ввода, чтобы увеличить шансы найти полезное большое число без проблемных цифр):

IDi67793554D647F84C836645D6569F69Pi6385C77P9i35PDdi6^I9^+6D59CD83D664D34+P8CPFi98CCF5PCi97P

В базе 7 все это может стать одним числом! Нижние основания, естественно, менее компактны, но отсутствие операций по исправлению здесь компенсирует это.

7i4398873968644388737548444897643735447698675366869556798538985674336396359936458859886P

Мой первый раствор используется база 10. Мой второй использовали смесь основания 9, 10, 12, 13 и 15. Это один находится в базе 7. Я действительно чувствую , что все базы являются принадлежат мне.

Последний, серьезно: Base 13 отлично работает в первом сегменте, а затем Base 7 для остальных.

Di67793554D647F84C836645D6569F69P7i798789699638355733695878558396339387963789536P

Другими словами, все ваши базы 7 принадлежат вам, @ Wumpus?
— WallyWest

10

Python REPL, 122 116 98 символов - 30 бонусов = 92 86 68 очков

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6fng \x74\x6f \x75\x73'

'All your base are belong to us'

Я мог бы избавиться от нулей в Python 3.3, заменив ' \40' на \N{SP}, но, увы, Nэто не разрешено.

Изменить : Вдохновленный этим ответом , я сократил его, заменив \x40на . Кроме того, так как я уже использовать 1, заменив \156на nи \x67на gукорачивает ему еще 6 символов , а не подвергаясь никакого дополнительного штрафа.


1
Интересно, является ли это действительной записью, потому что она работает только в интерактивной оболочке. Если вы поместите это в .pyфайл и выполните его, выходных данных нет.
— Даниэль Хеппер

1
Это зависит ... Я считаю, что нет общего правила. Некоторые вопросы разрешают интерактивный режим, другие - нет.
— Бакуриу


1
Это работает и в R
— Зак

1
@AaronHall И после моего редактирования я опустил мой до 68!
— gerrit

8

Brainfuck, 205 203 - 60 = 145 143 байта

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]>+.>>----..<.>>>-------.<<+++.>>----.---.<<<.>>++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.<---.>>---.-.<<-----.<.>>>++++++.-----.<<<.>>>++++++.--.

Читаемая версия:

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]
64 32 112 96 128

>+.>>----..<.                     All                 65 108 108  32
>>>-------.<<+++.>>----.---.<<<.  your           121 111 117 114  32
>>++.-.>+.<++++.<<.               base            98  97 115 101  32
>>----.>-.<++++.<<.               are                 97 114 101  32
>>---.+++.<---.>>---.-.<<-----.<. belong  98 101 108 111 110 103  32
>>>++++++.-----.<<<.              to                     116 111  32
>>>++++++.--.                     us                     117 115


Я вроде как ожидал решения Brainfuck в конце концов ... Отличная работа!
— WallyWest

7

Befunge 98: 122 - 60 = 62

5f8+*:53-+:' \6-:5+' 91+:*3+::7+\8+:3-:7-:3-:' \3+::3-4+',' -+\4-:' \:4+\6+c+:f3+-:4+3-' '&3*:3+:6-:f+5-:' \d-:' '!+ff+k,@

Вычисляет значения ascii, затем печатает их. Мне все еще нужно попробовать другие методы формирования чисел, чтобы увидеть, есть ли более короткие пути.


Мне было интересно, когда ты собираешься вставить свои 2 байта в ... Отличная работа!
— WallyWest

7

Питон, 195-40 = 155

x,w,y,z,v=4*8,55,56,57,58;exec(("%c"*38)%(y+y,z+z,49+y,w+w,v+v,39-7,34,65,54+54,54+54,x,v+63,48+63,48+69,z+z,x,98,97,59+y,45+y,x,97,z+z,45+y,x,98,45+y,54+54,w+y,w+w,45+v,x,v+v,w+y,x,v+59,z+v,34))

6

Рубин, 121 - 50 = 71

Немного грубой силы, но большинство милых методов исключено:

$><<[65,c=36*3,c,d=8*4,363/3,f=c+3,c+9,c+6,d,x=98,97,j=c+7,k=3+x,d,97,c+6,k,d,x,k,c,f,j-5,5+x,d,c+8,f,d,c+9,j].pack('C*')

Нарушает правило # 1 из-за A in pack, остальные два должны быть в порядке.


Я могу сохранить 6 символов, если мы просто возвращаем результат, а не печатаем его, я не понял этого после просмотра других ответов.
— Пол Престиж

1
Очень длинный, но не более «а»: pastebin.com/wnsvcAMh
— manatwork

@ Manatwork Я люблю это! Почему-то я никогда не думал об этом, хотя использую <<в своем ответе.
— Пол Престиж

Таким образом, вы либо используете 154-символьное решение, которое использовал @manatwork, и претендуете на скидку в 60 баллов, что дает вам 94, либо придерживаетесь версии, не связанной с правилом 1, и идете с 71 ... Я знаю, что я бы использовал :)
— WallyWest

6

{ba, z} sh, 67 - 40 72 - 60 61 - 40 = 21

$'\x74r' K-~\#-\; _@-~\^-j<<<'Mxx ){%~ 3m#q m~q 3qx{z8 ${ %#'

Черт возьми, оказывается, у меня rтам было то, чего я не заметил, так что бонус 20 не применяется!


1
В версиях zsh и bash, которые у меня есть, $'\x74\x72'могут использоваться непосредственно в качестве имени команды, сохраняя вам 8 символов для $(m4<<<). Разве это не работает для вас?

И еще раз посмотрев на него ... использование \x72в качестве замены для rвас дает бонус в 20 баллов за счет потери бонуса в 30 баллов (для 2)

@ WumpusQ.Wumbley О, вы правы в обоих случаях. Я не думал об 2использованном там, дай мне посмотреть, смогу ли я найти способ избавиться от него и избежать потери бонусов.
— FireFly

Черт возьми, это было гениально! Это похоже на шифр Reverse ROT12 ASCII ... (я прав?) Отлично сделано!
— WallyWest

Хороший ответ. Но trсчитается ли это внешним ресурсом?
— Цифровая травма

5

C, 75 байтов - 60 = 15

Спасибо @gastropner за снижение баллов с 50 до 33 и с 19 до 15!

*q,i;f(p){(*(q=p)="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9J"[i++]^74)?i=!f(++p):i;}

Принимает адрес массива char в качестве входных данных и записывает строку в массив.

Попробуйте онлайн!

Звоните с:

int main()
{
    char s[128];
    f(s);
    puts(s);
}

Выход:

Старая версия (90 байт - 40 = 50):

*q,i,j;f(p){for(i=3-3;j="Epp$}s v$fewi$evi$fipsrk$xs$ w"[i++];*q=j!=35-3?j-4:353/3)q=p++;}

1
Опираясь на это, используя силы XOR и рекурсии, вы можете достичь 93 - 60 = 33 байта:*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);}
— gastropner

@gastropner Спасибо!
— Steadybox

Может пойти i=i<30еще на 2 байта.
— гастропнер

@gastropner Не могу использовать 0.
— Steadybox

Ах да, конечно!
— гастропнер

4

JavaScript

(306 символов - 60 бонусов = 246) (206 символов - 50 бонусов = 156)

(123 символа = 173 символа - 50 бонусов)

Что-то вроде nooby, возможно, могло бы принести больше пользы ... Дайте мне знать, если я что-то набил, это предупреждает: "Вся ваша база принадлежит нам". Это также только ASCII.

(c=(''+!'')[4-3],x=([][3]+c)[6])[a='c\x6F'+x+'\x73t'+c+'uct\x6F'+c][a]('a\x6C\x65'+c+'t("A\x6C\x6C y\x6Fu'+c+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+x+'\x67 t\x6F u\x73")')()

Если вы посчитаете саму консоль как выходной, это также будет считать (57 с бонусом):

'A\x6C\x6C y\x6Fu'+(c=(''+!'')[4-3])+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+([][3]+c)[6]+'\x67 t\x6F u\x73'

Отличный подход, хотя несколько буквенных замен могли также дать вам бонус к Правилу-1 ... Хорошая работа.
— WallyWest

@WallyWest: Спасибо! Проблема в JavaScript заключается в том, что довольно сложно получить «А», не нарушая другие правила или не используя слишком много символов - для этого потребуется более 10 символов.
— Qantas 94 Heavy

Правда, вы должны перевесить дополнительные буквы против бонусов ... Хорошая работа, хотя!
— WallyWest

x=(c.t+c)[6]немного короче
— Не то, чтобы Чарльз

Кроме того, evalможет быть легче взломать
— не то, что Чарльз

4

Brainfuck, (227 - 60 = 167)

+++++ +++++[>+++>++++++>+++++++++>++++++++++<<<<-]>>+++++.>>++++++++..<<<++.>>>+++++++++++++.----------.++++++.---.<<<.>>++++++++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.>------.+++.-.<++.<<.>>>++++++.-----.<<<.>>>++++++.--.

Я не думаю, что место на старте +++++ +++++нужно? Это может быть 226 байт.
— FinW

3

PHP (35 - 60 = -25 байт)

HOW LOW CAN YOU GET ?[1] [2]

$ xxd yourbase.php 
0000000: 3c3f 3d7e be93 93df 8690 8a8d df9d 9e8c  <?=~............
0000010: 9adf 9e8d 9adf 9d9a 9390 9198 df8b 90df  ................
0000020: 8a8c 3b                                  ..;

[1] Эта программа может быть декодирована с использованием xxd -r.
[2] Да, тяжелое решение повторно использовать здесь. Я думаю, что это ... третья проблема, которую я решил таким образом. Возможно, мне следует перейти к чему-то другому, но дело не в том, что это не очень хорошо для проблем, которые запрещают вам использовать большинство персонажей.


Я не понимаю, что вы пытаетесь сделать здесь?
— WallyWest

@WallyWest Он немного перевернул строку; в результате получается 31 расширенный ASCII-символ, который PHP пытается интерпретировать как имя константы, а также потому, что не находит такой константы, интерпретируемой как строка. Эта строка возвращается с ~.
— Тит

3

Баш, 52 - 10 - 30 = 12

Следующее должно быть выполнено в (все еще довольно распространенной) среде ISO-8859-1:

$'\x74r' À-þ  @-~<<<'Áìì ùïõò âáóå áòå âåìïîç ôï õó'

Это звонки tr, которые переводят символы подходящим способом. Мне пришлось либо использовать rи нарушать правило 2, либо использовать цифру в escape и нарушать правило 3. Так как 3 дает больше бонусов, я выбрал первое.


1
Да, он сделал :) Вы не можете использовать «a», «b», «t», «u» или «y» в любом случае. Также вам нужно минимум два условия
— капюшон

@cowls: Кажется, я полностью упустил этот момент, спасибо за разъяснение. Переписал мой ответ, чтобы соответствовать этому.
— MvG

@MvG отличная переделка ... Молодец!
— WallyWest

Является ли trвнешний ресурс?
— Цифровая травма

@DigitalTrauma: Я бы сказал, что это больше похоже на стандартную библиотеку, хотя это, безусловно, подлежит интерпретации. Но это указано в стандарте POSIX , поэтому я думаю, что любая система POSIX должна иметь его, так что это часть системы.
— MvG

3

Pure Bash (без внешних ресурсов), 141 персонажа - 50 бонусов = 91

Z = ({k..v})
е = $ '\ x65'
ч = $ '\ x6c'
я = $ '\ x6f'
J = $ {Z [7]}
к = $ '\ x73'
м = $ '\ x75'
$ f $ '\ x63'h $ i A $ h $ hy $ i $ m $ j ba $ k $ fa $ j $ fb $ f $ h $ i $ {Z [3]} $' \ x67 't $ ЕД $ к

Намеренно отбрасывая 10-балльный бонус, чтобы получить лучший общий балл.

Это работает на любой bashверсии 3.00.15 или более поздней версии, которую я пробовал.

Как это работает

Здесь нет ракетостроения - только bashрасширения той или иной формы:

  • Простое шестнадцатеричное расширение для получения необходимого персонажа. Это работает для символов, чье шестнадцатеричное представление не содержит [012]. например, $'\x65'дает намe
  • Для других символов мы генерируем массив bash из последовательных символов, используя расширение скобок в инициализацию массива ( Z=({k..v})). Начало раскрытия фигурной скобки выбирается тщательно, чтобы индексы символов, которые нам нужны, не содержали [012]. например, ${Z[7]}дает нам r.
  • bashдостаточно гибок, чтобы позволить его командам быть составленными из содержимого нескольких строк. Так $f$'\x63'h$iрасширяется echo.
  • Для символов, которые требуются только один раз, расширение вставляется внутри строки команды echo.
  • Для символов, которые требуются дважды или более, более эффективно расширять их до переменных, а затем ссылаться на переменные.

Предыдущий ответ с полным бонусом, но худшим общим счетом:

Pure Bash (без внешних ресурсов), 193 символа - бонус 60 = 133

Я знаю, что это не победит, но я хотел доказать себе, что это возможно bash, удовлетворяя при этом всем требованиям:

Z = ({3..8} {C..z})
с = $ {Z [36]}
д = $ {Z [37]}
е = $ '\ x65'
ч = $ '\ x6c'
я = $ '\ x6f'
J = $ {Z [53]}
к = $ '\ x73'
м = $ '\ x75'
$ f $ '\ x63'h $ i $ {c ^} $ h $ h $' \ x79 '$ i $ m $ j $ d $ c $ k $ f $ c $ j $ f $ d $ f $ h $ i $ {Z [49]} $ '\ x67' $ '\ x74' $ i $ m $ k

Это требует довольно недавней версии bashдля ${c^}расширения параметра. 4.2.25 хорошо, но 3.2.48 - нет.


Я снимаю тебе шляпу ... Я только что выполнил эту ... хорошую работу ... Очень хорошую работу.
— WallyWest

@WallyWest - я только что отредактировал в более короткой версии.
— Цифровая травма

3

Постскриптум, 364 - 40 = 324

Без этого я бы не смог loser, конечно. :)

/${cvx exec}def
/+{<3C7E4F6F597E3E>$ $}def
/*{<~P&(~>$}def
/-{( )<3C7E4F754E7E3E>$ $ 3 4<~P#;~>$ 4 3<~P)#3FP'-~>$}def
/_{36(      )<~OoP~><3C7E4F754E7E3E>$ $ 4 3<~P,S~>$ 48<~P'?~>$
${96 3<~P#;~>$ + -}<~P">~>$}def
/.{_ 96 3<~P#;~>$ -}def
65 - 777 .
895 353 + _ 774 333 + .
74933 333 + 7 * 3 + 333 + .
9593 4353 + .
689653949 335 + .
735 333 + .
775 333 + _ 5 5 + -

Это начинается с кодирования текста в виде строк base-36:

%-=Encoding strings as base-36 numbers=-
%All your base are belong to us
% handle uppercase A separately
%36#ll = %777
%36#your = %1618515
%36#yo = 36#ur = 36#base = 36#are = 36#belong = 36#to = 36#us =
%1248 1107 527198 13946 689654284 1068 1108

А затем арифметическое удаление 1 и 0 и 2. Затем строки могут быть восстановлены с помощью 36 <string-buf> cvrs, но это дает буквы в верхнем регистре, поэтому нам нужно перебрать и добавить 0x20, чтобы сделать их строчными.

Операторы cvx execпозволяют нам выполнять строковые фрагменты двоичных кодированных токенов операторов в различных кодировках. Проще всего кодировать оператор в шестнадцатеричном виде, <92??>но там есть 2! Таким образом, кодировка «первого уровня» - ascii85. Затем любые строки, которые по-прежнему содержали запрещенные символы, проходили дополнительные уровни hex -> ascii85 -> hex -> ascii85.


2

Brainfuck, 306 - 60 = 246

----[---->+<]>++.[--->+<]>+..[++>---<]>--.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.[--->+<]>++.-.--[--->+<]>--.++++[->+++<]>.--[--->+<]>-.[--->+<]>+.--[--->+<]>---.-------------.--[--->+<]>-.[--->+<]>++.+++.+++++++.+++.-.-------.-[--->+<]>--.---[->++++<]>.-----.[--->+<]>-----.---[->++++<]>+.--.

Конечно, это можно как-то уменьшить?
— WallyWest

@WallWest У меня нет времени, чтобы уменьшить программу на 5% без причины: P, но не стесняйтесь публиковать улучшения!
— Timtech

Никаких обязательств здесь не требуется :)
— WallyWest

@WallyWest Вы правы, хотя сократить его. Это может использовать некоторые серьезные улучшения.
— Timtech

2

PHP, 186 - 10 - 30 = 146

Я должен был стать немного творческим;)

 <?=chr(65).'ll '.chr(88+33).'o'.chr(39*3).'r '.chr(98).chr(97).'s'.chr(68+33).' '.chr(97).chr(38*3).chr(68+33).' '.chr(98).'elo'.chr(77+33).chr(69+34).' '.chr(83+33).'o '.chr(39*3).'s'?>

Вы все еще можете немного поиграть в гольф и получить идею ответа: echo не требует скобок (1), вы можете использовать <?=вместо echo (4), вы можете сохранять повторяющиеся буквы в переменных ('l', ''). используйте 54*2вместо54+54
— Einacio

1
Исправлена. Я мог сделать только умножение на определенные. Я не могу сделать, 54*2потому что он имеет 2в себе, поэтому я мог сделать это только с теми, у кого было 3 или выше, имеет фактор. Если я использую десятичную дробь, то символов не меньше.
— ub3rst4r

несколько советов по игре в гольф на 50 байтов. Большая часть из них (23 + 9 байт): Вы можете заменить оставшиеся chr(68+33)и chr(38*3)буквальными eи r.
— Тит

1

Питон, 181 - 40 = 141

[Я использую версию 2.7.2 YMMV - встроенный, fileушел в Python 3.X]

f=file.__doc__;c=5-3;l=f[c];s=' ';e=f[3];h=f[6+7];i=f[c*87];j=3**3;f[j*c*5]+l+l+s+f[-57]+h+f[j-7]+f[j-3]+s+f[j-8]+f[6]+i+e+s+f[6]+f[j-3]+e+s+f[j-8]+e+l+h+f[5]+f[j]+s+f[45]+h+s+f[j-7]+i

1

Python (104 - 30 = 74)

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'
'All your base are belong to us'

И оценка:

>>> len(r"'\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'")-30
74

Отлично сделано, но вам действительно не нужно было делать то же самое для определения счета ...;)
— WallyWest

1

Свинка 150 - 60 = 90. 40 = 110

S J=" ",Z=36*3,C=37*3,D=38*3,Q=39*3,I=35*3-4 W *65,*Z,*Z,J,*484/4,*C,*Q,*D,J,*98,*97,*C+4,*I,J,*97,*D,*I,J,*98,*I,*Z,*C,*D-4,*Z-5,J,*C+5,*C,J,*Q,*C+4

Я не уверен, что можно было бы сделать это короче (в целом), не получив ни одного бонуса за код - моя цель была немного меньше на краткости и немного больше на -60 ... Мне понравилась задача не использовать любой из запрещенных символов.

И ... я облажался - пропустил начальную команду "S". : - /

В любом случае, вот версия «без правил» - расширение переменных.

W *65,*36*3,*36*3," ",*484/4,*37*3,*39*3,*38*3," ",*98,*97,*37*3+4,*35*3-4," ",*97,*38*3,*35*3-4," ",*98,*35*3-4,*36*3,*37*3,*38*3-4,*36*3-5," ",*37*3+5,*37*3," ",*39*3,*37*3+4

И это дает ему 177-60 = 117. Таким образом, нарушение правила центра все же дало мне более низкий общий балл.


Интересный ответ ... Есть ли онлайн-эмулятор, к которому я могу получить доступ для выполнения этого кода?
— WallyWest

1
Насколько я знаю, но есть версии для Mumps, которые работают практически на каждой платформе - есть даже версии, которые будут работать на Raspberry Pi, если вы хотите очень маленький компьютер Mumps ... :-)
— zmerch

1

Perl 5, 99 - 50 = 49

Подпрограмма, которая возвращает требуемую строку:

{A.($c=h|d)."$c y".($f=f|k).u.($k=p|b)." ba".($j=c|p).($d=d|a)." a$k$d b$d$c$f".(jf|fc)." t$f u$j"}

Посмотрите это напечатано так:

perl -e'print sub{...}->().$/'

1

BF-RLE , 146 - 30 = 116

+5[>+5<-]>+.<+4[>+3<-]>+..>>+3[<+2>-]<++.<+A.-7.+3.-0.>.<<+1[>-1<-]>.-.<+0[>+3<-]>.-B.>.<-1.<+1[>+1<-]>+.-A.>.<-0.+0.+4.+0.-.-4.>.<+A.-2.>.<+3.--.

Это может быть значительно сокращено
— Timtech
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.