Вся ваша база належить нам (обмежено)


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
"введення не потрібно ". Чи це не означає, що я міг би, наприклад, зробити щось на кшталт print(input())(python)? Користувачеві потрібно буде ввести правильний рядок, але це не заборонено.
Джастін

5
@Quincunx Я б не прийняв таке рішення, оскільки код не гарантовано виводить правильне рішення. Також, stdinможливо, це "зовнішнє джерело".
nitro2k01

2
@PranavHosangadi На це запитання видалено відповідь із оцінкою -6, яка по суті така сама. Це робилося раніше, ніж багато разів, у різних питаннях і явно заборонено в тезі code-golf .
Гарет

1
Відповідно до стандартних правил коду-гольфу, відповіді латиницею / unicode / ім'ям charmap оцінюються у байтах після перетворення у 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"як я вже сказав, я б кинув the попереду і змінив рахунок на -39, але великі зусилля! Особливо враховуючи, що ви вигадали мову, чувак!
WallyWest

1
Як по-корейськи бачити корейські склади в коді дивовижно.
Matthew Roh

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);
nick 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
fbonetti зробив краще у своїй відповіді Brainfuck.
Hand-E-Food

2
А FIQ зробив ще краще через 4 дні
шнадер

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

@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('')Виклик не закінчується крапкою з комою, отже , він буде генерувати вихідний сигнал.
Ben Voigt

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. Я дійсно відчуваю , що всі підстави є належить мені.

Останнє, серйозно: База 13 робить чудову роботу на першому сегменті, потім базу 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!
Герріт

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 в pack, інші два повинні бути в порядку.


Я можу зберегти 6 символів, якщо ми просто повертаємо результат, а не друкуємо його, я не зрозумів цього після перегляду інших відповідей.
Пол Престидж

1
Надзвичайно довго, але не більше "a": pastebin.com/wnsvcAMh
манатура

@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

Святий ш # т, це було геніально! Це схоже на реверс 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 бонусів)

Вигляд нобій, напевно, міг би отримати більше… Дайте мені знати, якщо я щось набив, це попередження "Вся ваша база належить нам". Це також лише 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 полягає в тому, що досить важко отримати "A", не порушуючи інших правил або використовуючи занадто багато символів - це займе більше 10 символів.
Qantas 94 Важка

Правда, вам доведеться перевантажувати додаткові листи проти бонусів ... Хоча приємна робота!
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, або використовувати цифру під час скасування та порушувати правило 3. Оскільки 3 дає більший бонус, я вибрав перше.


1
Так , він зробив :) Ви не можете використовувати «а», «б», «T», «U» або «у» в будь-якому випадку Крім того , необхідно мінімум два з умов
обтічники

@cowls: Здається, я повністю пропустив цю точку, дякую, що я зрозумів це. Переписав мою відповідь, щоб виконати це.
MvG

@MvG чудова переробка ... Молодці!
WallyWest

Чи trявляє собою зовнішній ресурс?
Цифрова травма

@DigitalTrauma: Я б сказав, що більше, як стандартна бібліотека, хоча це, безумовно, підлягає тлумаченню. Але він визначений у стандарті POSIX , тому я думаю, що будь-яка система POSIX має його мати, тому вона є частиною системи.
MvG

3

Чистий Баш (без зовнішніх ресурсів), 141 знак - 50 бонусів = 91

Z = ({k..v})
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [7]}
k = $ '\ x73'
m = $ '\ 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.
  • Для символів, які потрібні двічі або більше, ефективніше розширити їх до змінних, а потім посилатися на змінні.

Попередня відповідь з повним бонусом, але гірший загальний бал:

Чистий Баш (без зовнішніх ресурсів), 193 символів - 60 бонусів = 133

Я знаю, що це не виграє, але я хотів довести собі, що це можливо bash, задовольняючи всі вимоги:

Z = ({3..8} {C..z})
c = $ {Z [36]}
d = $ {Z [37]}
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [53]}
k = $ '\ x73'
m = $ '\ 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 + -

Це починається з кодування тексту як базових 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

А потім вилучаємо арифметично значення 1s та 0s та 2s. Потім рядки можна регенерувати за допомогою 36 <string-buf> cvrs, але це дає великі літери, тому нам потрібно перебрати і додати 0x20, щоб зробити їх малими літерами.

Оператори cvx execдозволяють нам виконувати рядкові фрагменти двійкових закодованих маркерів операторів в різних кодуваннях. Найпростіше - це кодувати оператора в шістнадцятковій формі, <92??>але там є 2! Отже, кодування "першого рівня" - це ascii85. Тоді будь-які рядки, які все ще містили заборонені символи, пройшли через додаткові рівні шістнадцяткової -> ascii85 -> hex -> ascii85.


2

Brainfuck, 306 - 60 = 246

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

Невже це можна якось зменшити?
WallyWest

@WallyWest У мене немає часу, щоб зменшити таку програму на 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'?>

Ви все ще можете трохи пограти в нього і домогтися ідеї відповіді: ехо не потребує дужок (1), ви можете використовувати <?=замість echo (4), ви можете зберігати повторні букви у змінних ('l', ''). використовувати 54*2замість54+54
Ейнасіо

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в пітоні 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

Пітон (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

Перл 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.