Розборка jQuery


18

Через деякий час після цього інциденту ...

Є деякі з нас, хто проти цього дефіцитного порядку jQuery. Це нечесна присутність, яку треба винищувати . Тому я закликаю вас, лояльних до Нового Королівства Реформації, створити програму, яка усуне такий опір. Увесь код повинен бути перевірений та шуканий БУДЬ-ЯКОГО та КОЖНОГО сліду jQuery. І, звичайно, ваше подання має бути коротким (відбулося чергове скорочення бюджету, і, на жаль, це було у відділі зберігання). І він не може мати дефіліруючі символи.

Для того, щоб отримати до швидкості, осквернення символів є будь-який з наступних символів: jJqQuUeErRyY$x0. Як було сказано, використання цих символів категорично заборонено, навіть у вашій власній програмі. Тому не використовуйте їх. ТАКОЖ ми з нормами знаками долара в цифрах. Отже, будь-яка форма n+(.nn)*$є в порядку (Ви все одно не повинні використовувати 0.)

Ваша програма / код / ​​тощо. повинні підтвердити програму введення. Якщо він містить будь-які символи , що зменшуються , потрібно вивести This programmer is guilty of Heresy. He must be burnt.; якщо таких символів не знайдено, потрібно вивести Program validated. Clearance level 2 given..

Бонуси та пені

  • Я особисто захоплююся персонажем персонажа ~. За кожні два, які ви використовуєте, я дам вам -1 байт. (тобто кожен інший ~безкоштовний.)
  • Ви можете вибрати один символ із виключеного; то ви можете використовувати цей символ у всіх його випадках, ДОКЛАД: початкове покарання + 50% байт, а потім +5 байтове покарання для кожного примірника цього символу.
  • -90%, якщо ви не використовуєте жодного з символів, суміжних із jquery(просто щоб бути безпечними) у своєму вихідному коді. Це (додатково):iIkKpPsSzZXdDfF
  • -20%, якщо при введенні недійсного рядка разом із виведенням згаданого тексту ви замінюєте всі недійсні символи -на пробіг 1, *на пробіг менше 10 та []на будь-який довший цикл.
  • -50 байтів, якщо ви не знайдете JavaScript/iабо не Simplexмаєте символів, що формулюються.

Довідкова реалізація

function validate() {
  var str = document.getElementById("input").value;
  var str2 = str.replace(/[jquery0]/gi,"").replace(/x/g,"").replace(/(\d+\.*\d*\d*\$)|\$/g,"$1"); // thanks Doorknob!
  var val;
  if (str2 == str) {
    val = "Program validated. Clearance level 2 given.";
  } else {
    val = "This programmer is guilty of Heresy. He must be burnt.";
  }
  document.getElementById("output").value = val;
}
textarea{width: 600px;}
<textarea id="input" onkeyup="validate()"></textarea>
<br><br>
<textarea id="output" disabled></textarea>


1
EeОбмеження буде жорстким ...
LegionMammal978

11
Зачекайте ... вихідні речення містять осквернюючі літери - ГІПОКРИЗА !!!
Mama Fun Roll

6
@molarmanful Це злі листи не можуть містити лише програми. Ми маємо на увазі не перешкоджати мовленнєвій промові людей до інших, скоріше перешкоджати використанню символів, які були класифіковані як згубні для святої якості програмування. Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Conor O'Brien


5
-1 для постійного редагування бонусів за виклики.
AdmBorkBork

Відповіді:


20

CJam, 160 139 13,4 байт

0000000: 22 cf 97 d9 87 d1 85 82 89 8d d1 db 8d 80 a8 af b3 a3  ".................
0000012: b0 b7 82 8e 80 bd c3 ca 89 85 d6 89 84 80 b2 c6 c7 d1  ..................
0000024: 7e ce d0 cd c5 d0 bf cb cb c3 d0 7e c7 d1 7e c5 d3 c7  ~..........~..~...
0000036: ca d2 d7 7e cd c4 7e a6 c3 d0 c3 d1 d7 8c 7e a6 c3 7e  ...~..~.......~..~
0000048: cb d3 d1 d2 7e c0 c3 7e c0 d3 d0 cc d2 8c 80 80 ae d0  ....~..~..........
000005a: cd c5 d0 bf cb 7e d4 bf ca c7 c2 bf d2 c3 c2 8c 7e a1  .....~..........~.
000006c: ca c3 bf d0 bf cc c1 c3 7e ca c3 d4 c3 ca 7e 90 7e c5  ........~.....~.~.
000007e: c7 d4 c3 cc 8c 80 9d 22 7b 39 33 7e 2b 7d 25 7e        ......."{93~+}%~

Вищенаведене - це шістнадцятковий тиск, з яким можна повернути назад xxd -r -c 18. Спробуйте в Інтернеті.

Сам код складається з 142 байт . Він містить усього шістнадцять ~ символів ( -8 байт ), але немає суміжних символів jQuery ( -90% ).

Як це працює

Матч n+(.nn)*$дійсно зводиться до цифри, а за ним знак долара .

Поперше,

"<bunch of characters>"{93~+}%~

додає -94 до всіх кодових точок цього рядка і оцінює результат.

Виконаний код:

q       e# Read all input from STDIN.
9{      e# For each I in [0 ... 8]:
  )s    e#   Increment and cast to string.
  '$+   e#   Append a dollar sign.
  /s    e#   Split the input at occurrences. Flatten the result.
}/

"JQUERY$0"

_el+'x+ e# Append a lowercase copy and "x" to that string.
&       e# Intersect with the modified input.

"This programmer is guilty of Heresy. He must be burnt."
"Program validated. Clearance level 2 given."

?       e# Ternary if; select the corresponding message.

Це добре. Ого.
Conor O'Brien

Хороша робота. Вибачте за горе бонусів. Не усвідомлював, що це згубно вплине на вас та інших
Conor O'Brien

6

Міньколанг 0,9 , 346-3 = 343 байт

Найдовша програма поки.

#66*68*d5*2:88*5+d5+d7+d1+d3+d4+6[3i+c48*+]2c"N"11-p(od4&k13w35*[dic=,5&kk11w] )
 725*35*48*68*3+5[66+c2~g2p]27*48*1-d2+d6+d8+5[9c2~g2p]37*67*d8+3[67+c2~g2p]55*57*2[77+c2~g2p]X11-2w
"This p og amm   is g ilt  of H   s . H  m st b  b  nt."(O).
 X2546*3[66+c2~g4p]44*d6+47*d3+d2+d8+6[9c2~g4p]X11-4w
"P og am validat d. Cl a anc  l v l 2 giv n."(O).

Спробуйте тут.

Пояснення

Перший рядок робить три речі: 1) збирає стек із забороненими символами; 2) ставить потрібне xв потрібне місце (пробіл в кінці) і 3) прокручує через вхід, перестрибуючи у відповідний рядок .

Другий та четвертий рядки роблять те ж саме: замінюйте кожен проміжок у наступній лінії відповідним символом. Вони переходять на наступний рядок наприкінці.

Третій та п’ятий рядки просто натисніть на потрібний рядок на стеку та роздрукуйте його.


Cooooooooooool!
Conor O'Brien

5

PHP, (204 * 1,5 + 5) * .1 = 31,1

<?=eval(~šœ—.ß..š˜ ’ž‹œ—×ØÐ¤•ŽŠš.†££Û‡Ï¢Ð–ØÓ..š˜ .š.“žœš×ØÐ¤ÎÒÆ¢Ô×££Ñ¤ÎÒÆ¢„Í‚ÖÀ££ÛÐØÓÝÝÓÛž.˜‰¤Î¢ÖÖÀØ«—–Œß...˜.ž’’š.ß–Œß˜Š–“‹†ß.™ß·š.šŒ†Ñß·šß’ŠŒ‹ß.šß.Š.‘‹ÑØÅد..˜.ž’߉ž“–›ž‹š›Ñß¼“šž.ž‘œšß“š‰š“ßÍߘ–‰š‘ÑØÄ);

Цей дамп був зроблений за допомогою gnuwin32 hexdump. Реверс сhex2bin .

00000000: 3C 3F 3D 65 76 61 6C 28 - 7E 9A 9C 97 90 DF 8F 8D |<?=eval(~       |
00000010: 9A 98 A0 92 9E 8B 9C 97 - D7 D8 D0 A4 95 8E 8A 9A |                |
00000020: 8D 86 A3 A3 DB 87 CF A2 - D0 96 D8 D3 8F 8D 9A 98 |                |
00000030: A0 8D 9A 8F 93 9E 9C 9A - D7 D8 D0 A4 CE D2 C6 A2 |                |
00000040: D4 D7 A3 A3 D1 A4 CE D2 - C6 A2 84 CD 82 D6 C0 A3 |                |
00000050: A3 DB D0 D8 D3 DD DD D3 - DB 9E 8D 98 89 A4 CE A2 |                |
00000060: D6 D6 C0 D8 AB 97 96 8C - DF 8F 8D 90 98 8D 9E 92 |                |
00000070: 92 9A 8D DF 96 8C DF 98 - 8A 96 93 8B 86 DF 90 99 |                |
00000080: DF B7 9A 8D 9A 8C 86 D1 - DF B7 9A DF 92 8A 8C 8B |                |
00000090: DF 9D 9A DF 9D 8A 8D 91 - 8B D1 D8 C5 D8 AF 8D 90 |                |
000000a0: 98 8D 9E 92 DF 89 9E 93 - 96 9B 9E 8B 9A 9B D1 DF |                |
000000b0: BC 93 9A 9E 8D 9E 91 9C - 9A DF 93 9A 89 9A 93 DF |                |
000000c0: CD DF 98 96 89 9A 91 D1 - D8 C4 29 3B             |          );|
000000cc;

(Мене плутає порядок застосування бонусу / штрафу, тому я прийняв наказ як написано.)

Використовує символ "e" в eval. Завдяки магії інверсії рядків PHP, це вдається уникнути всіх інших символів jquery та близьких jquery.

Інвертований рядок містить цей код (відформатований для ясності)

echo preg_match('/[jquery\\$x0]/i',
  preg_replace('/[1-9]+(\\.[1-9]{2})?\\$/',"", $argv[1]))
  ? 'This programmer is guilty of Heresy. He must be burnt.'
  : 'Program validated. Clearance level 2 given.';

Оскільки в цьому коді немає заяви про повернення, return evalnull тому <?=evalнічого не робить. (Це просто уникати <?php)


1
Я думаю, ви можете трохи спростити це за допомогою [jquery$x0]і [1-9]+(\.[1-9]{2})?\$. До речі, капітал Xне слід вважати дефіцитним характером, тому другий зворотний вираз слід змінити на '/[1-9]+(\.[1-9]{2})?\$|X/'.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

Додайте спочатку, а потім помножте. Фактична оцінка:
31.35

4

> <> , 184 байти

"/6VO+K;[.N'G|(p
~<.1+f9o*-21-*5-1' ';!?l<"K),4):.{%:/27:'67m{X/6:):-86{/6%6/{i{42%6-m"
f +1.>"m'-)&9{69{'(&.{6S{m"'"(6)6S{5,{"'"'/2&4{(2{)6..:)4,)+{(23G"8
!^ag?/i:1+?
p>l?!^1' '5*@@-a

Це може бути трохи коротше з недрукованими версіями, але ось версія для друку просто заради задоволення. Не працюватиме з онлайн-перекладачем, оскільки він ставить поза кодової скриньки.

Ця програма кодує обидва рядки як

G32({+),4):..6){2({4&2/'"{,5{S6)6("m{S6{.&('{96{9&)-'m
K),4):.{%:/27:'67m{X/6:):-86{/6%6/{i{42%6-m

яка кожна кодова точка віднімається від 155. Аналогічно,

6V/O+K;[.N'G|(p

кодує заборонені символи, а кодові точки віднімаються від 160.

Останній рядок просто встановлює координати (forbidden char, 10)до 1, утворюючи таблицю пошуку. Потім четвертий рядок перевіряє кожну вхідну таблицю за допомогою таблиці пошуку, виводячи повідомлення про єресь, якщо 1 ще продовжується. На EOF ми рухаємося вгору, щоб вивести повідомлення про дозвіл.


1

"Javascript" 840 * 2 + 14 * 5 = 1750;)

Я так близько, просто потрібно знайти спосіб позбутися від г-на

Стек не дозволяє мені вставити код сюди, оскільки в рядках є кілька символів ASCII, що не друкуються, ось ось шестнадцятковий з xxd

0000000: 6576 616c 2868 3d27 272c 643d 5b7b 613a  eval(h='',d=[{a:
0000010: 5b2e 2e2e 2770 5b6c 1a6d 375e 695d 6f67  [...'p[l.m7^i]og
0000020: 5f68 6e28 5d6c 5f5b 6e5f 3f66 5f67 5f68  _hn(]l_[n_?f_g_h
0000030: 6e22 1c6d 5d6c 6327 5d2c 623a 367d 2c7b  n".m]lc'],b:6},{
0000040: 613a 5b27 7e27 5d2c 623a 2d31 347d 2c7b  a:['~'],b:-14},{
0000050: 613a 5b2e 2e2e 276e 1c23 356d 286d 6c5d  a:[...'n.#5m(ml]
0000060: 371c 2929 5d69 5e5f 2864 6b6f 5f6c 7328  7.))]i^_(dko_ls(
0000070: 5d69 6729 646b 6f5f 6c73 5c27 2c28 2b28  ]ig)dko_ls\',(+(
0000080: 2e28 646d 1c26 5e69 5d6f 675f 686e 285c  .(dm.&^i]og_hn(\
0000090: 5c69 5e73 285b 275d 2c62 3a36 7d2c 7b61  \i^s(['],b:6},{a
00000a0: 3a5b 277e 272c 277e 275d 2c62 3a2d 3134  :['~','~'],b:-14
00000b0: 7d2c 7b61 3a5b 2e2e 2e27 5f68 5e3d 6263  },{a:[...'_h^=bc
00000c0: 665e 226d 2326 1e22 1c1d 696f 6e1c 2328  f^"m#&."..ion.#(
00000d0: 705b 6622 686f 6666 1b37 1e22 1c1d 6368  p[f"hoff.7."..ch
00000e0: 1c23 2870 5b66 2223 286d 275d 2c62 3a36  .#(p[f"#(m'],b:6
00000f0: 7d2c 7b61 3a5b 277e 275d 2c62 3a2d 3134  },{a:['~'],b:-14
0000100: 7d2c 7b61 3a5b 2e2e 2e27 6663 6e22 1c1c  },{a:[...'fcn"..
0000110: 2328 6c5f 705f 6c6d 5f22 2328 6469 6368  #(l_p_lm_"#(dich
0000120: 221c 1c23 2867 5b6e 5d62 2229 275d 2c62  "..#(g[n]b")'],b
0000130: 3a36 7d2c 7b61 3a5b 277e 275d 2c62 3a2d  :6},{a:['~'],b:-
0000140: 3335 7d2c 7b61 3a5b 2e2e 2e27 6444 6b4b  35},{a:[...'dDkK
0000150: 6f4f 5f3f 6c4c 7353 1e2a 7257 7656 1e22  oO_?lLsS.*rWvV."
0000160: 391b 2227 5d2c 623a 367d 2c7b 613a 5b2e  9."'],b:6},{a:[.
0000170: 2e2e 275b 312d 395d 5b31 2d39 5d5c 5c2e  ..'[1-9][1-9]\\.
0000180: 293f 5b27 5d2c 623a 312d 317d 2c7b 613a  )?['],b:1-1},{a:
0000190: 5b2e 2e2e 272b 5c27 3357 2329 6123 391c  [...'+\'3W#)a#9.
00001a0: 275d 2c62 3a36 7d2c 7b61 3a5b 277e 275d  '],b:6},{a:['~']
00001b0: 2c62 3a2d 3436 7d2c 7b61 3a5b 2e2e 2e27  ,b:-46},{a:[...'
00001c0: 6c69 616c 5b67 1a70 5b66 635e 5b6e 5f5e  lial[g.p[fc^[n_^
00001d0: 281a 3d66 5f5b 6c5b 685d 5f1a 665f 705f  (.=f_[l[h]_.f_p_
00001e0: 661a 2c1a 6163 705f 6828 1c34 1c4e 6263  f.,.acp_h(.4.Nbc
00001f0: 6d1a 275d 2c62 3a36 7d2c 7b61 3a5b 277e  m.'],b:6},{a:['~
0000200: 275d 2c62 3a2d 3134 7d2c 7b61 3a5b 2e2e  '],b:-14},{a:[..
0000210: 2e27 6c69 616c 5b67 675f 6c1a 636d 1a61  .'lial[gg_l.cm.a
0000220: 6f63 666e 731a 6960 1a42 5f6c 5f6d 7328  ocfns.i`.B_l_ms(
0000230: 1a42 5f1a 676f 6d6e 1a5c 5c5f 1a5c 5c6f  .B_.gomn.\\_.\\o
0000240: 6c68 6e28 1c23 275d 2c62 3a36 7d5d 2e6d  lhn(.#'],b:6}].m
0000250: 6170 2864 3d3e 2876 3d27 272c 773d 642e  ap(d=>(v='',w=d.
0000260: 612e 6d61 7028 633d 3e53 7472 696e 672e  a.map(c=>String.
0000270: 6672 6f6d 4368 6172 436f 6465 2863 2e63  fromCharCode(c.c
0000280: 6861 7243 6f64 6541 7428 292b 642e 6229  harCodeAt()+d.b)
0000290: 292c 772e 666f 7245 6163 6828 287a 2c69  ),w.forEach((z,i
00002a0: 2c61 293d 3e7b 6966 2869 2532 2976 3d76  ,a)=>{if(i%2)v=v
00002b0: 2e63 6f6e 6361 7428 615b 692d 315d 2e63  .concat(a[i-1].c
00002c0: 6f6e 6361 7428 7a29 297d 292c 762e 636f  oncat(z))}),v.co
00002d0: 6e63 6174 2877 2e6c 656e 6774 6825 323f  ncat(w.length%2?
00002e0: 772e 706f 7028 293a 2727 2929 292c 642e  w.pop():''))),d.
00002f0: 666f 7245 6163 6828 287a 2c69 2c61 293d  forEach((z,i,a)=
0000300: 3e7b 6966 2869 2532 2968 3d68 2e63 6f6e  >{if(i%2)h=h.con
0000310: 6361 7428 615b 692d 315d 2e63 6f6e 6361  cat(a[i-1].conca
0000320: 7428 7a29 297d 292c 682e 636f 6e63 6174  t(z))}),h.concat
0000330: 2864 2e6c 656e 6774 6825 323f 642e 706f  (d.length%2?d.po
0000340: 7028 293a 2727 2929 0a                   p():'')).

1
У свій заголовок прийнято включати кількість байтів;)
Conor O'Brien
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.