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.

ボーナスとペナルティ

  • 私は個人的にキャラクターを称賛し~ます。使用する2つごとに、-1バイトを指定します。(つまり、他のすべて~は無料です。)
  • 除外された文字から正確に1文字を選択できます。ただし、すべての場合にこの文字を使用できます。ただし、最初のペナルティが+ 50%で、その文字のすべてのインスタンスに+5バイトのペナルティがあります。
  • -90%jquery(ソースコードで(非常に安全にするために)隣接する文字を使用しない場合。これらは(さらに)次のとおりです。iIkKpPsSzZXdDfF
  • 無効な文字列が指定されたときに前述のテキストを出力するときに、すべての無効な文字を-1 *の実行、10未満の実行、および[]それ以上の実行で置き換える場合、-20%。
  • -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
待ってください...出力文には文字が含まれています-偽善!!!
ママファンロール

6
@molarmanfulこれらの邪悪な文字を含めることができないのはプログラムだけです。私たちは、男性が他者に向かって話すことを妨げないことを意味し、むしろ、プログラミングの神聖な品質に有害であると分類されたキャラクターの使用を妨げます。Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
コナーオブライエン


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~+}%~

上記は、を使用して元に戻すことができるhexdumpですxxd -r -c 18オンラインでお試しください。

コード自体は142バイトで構成されます。合計16個の文字(-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.

それは良い。ワオ。
コナーオブライエン

よくやった。ボーナスの悲しみで申し訳ありません。それがあなたに不利な影響を与えることに気づかなかった
コナーオブライエン

6

Minkolang 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).

ここで試してみてください。

説明

最初の行は3つのことを行います。1)禁止文字でスタックを構築する、2)必要なものxを適切な場所(最後のスペース)に配置する、3)入力をループして適切な行にジャンプする。

2行目と4行目も同じことを行います。後続の行のすべてのギャップを適切な文字に置き換えます。最後に次の行にジャンプします。

3行目と5行目は、必要な文字列をスタックにプッシュして出力するだけです。



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;

(ボーナス/ペナルティを適用する順序について混乱しているので、書かれた順序を仮定しました。)

evalで文字「e」を使用します。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ステートメントがないevalため、nullを返し、<?=eval何もしません。(回避するためだけです<?php


1
私はあなたがそれを少し簡略化することができると思う[jquery$x0][1-9]+(\.[1-9]{2})?\$。ちなみに、大文字Xは文字を汚すと考えるべきではないので、2番目の正規表現はに変更する必要があります'/[1-9]+(\.[1-9]{2})?\$|X/'
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

最初に追加してから乗算します。実際のスコア:31.35
ev3commander

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に設定するだけで、ルックアップテーブルを形成します。4行目では、ルックアップテーブルを使用して各入力文字をチェックし、1が継続する場合は異端のメッセージを出力します。EOFでは、クリアランスメッセージを出力するために上に移動します。


1

「Javascript」840 * 2 + 14 * 5 = 1750;)

私はすっごく近いです、ただrを取り除く方法を見つける必要があります

文字列内に印刷されないASCII文字がいくつかあるため、Stackでここにコードを貼り付けられないので、xxdのhexdumpを使用します

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
ヘッダーにバイトカウントを含めるのが一般的です;)
コナーオブライエン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.