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

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 датирует эту проблему, но теперь это разрешено.

dzaima
источник
Я просто должен спросить ... Как ??? Мы имеем дело с какой-нибудь умной техникой сжатия здесь? Я ничего не знаю о 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.
Timwi
источник
Ну, "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

++++++++[>++++++++<-]>+.<+++++++[>++++++<-]>+..>>++++++[<+++++>-]<++.<+++++++++
++++.----------.++++++.---.>.<<++++[>----<-]>.-.<+++[>++++++<-]>.--------------
.>.<----.<++++[>++++<-]>+.-------------.>.<---.+++.+++++++.+++.-.-------.>.<+++
++++++++++.-----.>.<++++++.--.
Hand-E-Food
источник
Интересно, можно ли это еще больше уменьшить? :)
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

DA.
источник
Я думаю, что вы можете использовать ссылки на символы 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
FIQ
источник
Я вроде как ожидал решения 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++;}
Steadybox
источник
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'
Qantas 94 Heavy
источник
Отличный подход, хотя несколько буквенных замен могли также дать вам бонус к Правилу-1 ... Хорошая работа.
WallyWest
@WallyWest: Спасибо! Проблема в JavaScript заключается в том, что довольно сложно получить «А», не нарушая другие правила или не используя слишком много символов - для этого потребуется более 10 символов.
Qantas 94 Heavy
Правда, вы должны перевесить дополнительные буквы против бонусов ... Хорошая работа, хотя!
WallyWest
x=(c.t+c)[6]немного короче
Не то, чтобы Чарльз
Кроме того, evalможет быть легче взломать
не то, что Чарльз
4

Brainfuck, (227 - 60 = 167)

+++++ +++++[>+++>++++++>+++++++++>++++++++++<<<<-]>>+++++.>>++++++++..<<<++.>>>+++++++++++++.----------.++++++.---.<<<.>>++++++++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.>------.+++.-.<++.<<.>>>++++++.-----.<<<.>>>++++++.--.
fbonetti
источник
Я не думаю, что место на старте +++++ +++++нужно? Это может быть 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 дает больше бонусов, я выбрал первое.

MVG
источник
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

----[---->+<]>++.[--->+<]>+..[++>---<]>--.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.[--->+<]>++.-.--[--->+<]>--.++++[->+++<]>.--[--->+<]>-.[--->+<]>+.--[--->+<]>---.-------------.--[--->+<]>-.[--->+<]>++.+++.+++++++.+++.-.-------.-[--->+<]>--.---[->++++<]>.-----.[--->+<]>-----.---[->++++<]>+.--.
Timtech
источник
Конечно, это можно как-то уменьшить?
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'?>
ub3rst4r
источник
Вы все еще можете немного поиграть в гольф и получить идею ответа: 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
Gerrat
источник
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. Таким образом, нарушение правила центра все же дало мне более низкий общий балл.

zmerch
источник
Интересный ответ ... Есть ли онлайн-эмулятор, к которому я могу получить доступ для выполнения этого кода?
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{...}->().$/'
msh210
источник
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
источник
Это может быть значительно сокращено
Timtech