投稿する前にこのチャレンジの仕様を固めるのを手伝ってくれたユーザー、Step Hen、Wheat-Wizard、およびDennisに感謝します!
これが強盗のスレッドです!警官のスレッドについては、こちらをご覧ください
で、この挑戦、あなたはそのようにプログラミング言語であることの満たし、当社の基準をあなたの言語は、もはやことになり、いくつかのコードを実行する使命を帯びています。その挑戦では、それは言語がもはやできないようにすることを意味します...
数値の入出力を行う
2つの数字を一緒に追加します
特定の数が素数かどうかをテストします。
これは、COPS-と-強盗の 2つの異なる目的を持つ2つの異なる課題がある挑戦、警官は言語が作るいくつかのコードを記述しようとするほとんど使用不可能にし、強盗は警官を可能に隠された回避策を見つけようとします言語を回復します。
警官は2つのコードスニペットを記述します。
入出力や数値演算を行うための組み込み関数を削除するなど、言語をほとんど使用できなくするもの。このコードは、クラッシュまたは終了することはできません。このスニペットの最後にコードを追加することが可能であるべきであり、そのコードは評価されます。そして
2つの数値を入力として受け取り、それらを加算して合計を出力するコードスニペット。このスニペットは、最初のスニペットを実行した後でも正しく機能する必要があります。2つのスニペットを組み合わせる場合、2つの数字を追加する完全なプログラムを形成するか、2つの数字を追加する関数を定義する必要があります。このスニペットは、あいまいな動作に依存している可能性が高く、見つけるのは困難です。
警官は、入力および出力の標準的な方法も選択します。ただし、使用している形式(入力および出力)を正確に明らかにする必要があります。回答を解読するには、同じ入力/出力形式に従う必要があります。そうしないと、亀裂はカウントされません。
警官の答えは常に明らかにします
最初のスニペット(明らかではない第二)。
言語(マイナーバージョンを含む、ほとんどの提出物はおそらく奇妙なエッジケースに依存するため)
関数か完全なプログラムかを含むIO形式。強盗は、有効なクラックになるために同じ形式を使用する必要があります。
答えが機能するために必要な奇妙なエッジケース。たとえば、Linuxでのみ実行されるか、インターネット接続が必要です。
強盗として、警官の提出物の1つを見て、それを解読しようとする必要があります。スニペット2として機能する有効なスニペットを記述することにより、それをクラックすることができます(言語がほとんど使用できなくなった後、2つの数字を加算します)。これは、警官が最初に書いたものと同じスニペットである必要はありません。回答をクラックしたら、このスレッドに回答としてコードを投稿し、警官の回答に対するコメントとして回答へのリンクを投稿します。次に、その投稿が編集され、クラックされていることを示します。
以下に例を示します。最初のスニペットでは、警官の答えとして次のpython 3プログラムが表示される場合があります。
Python 3
print=None
STDINから入力を受け取り、STDOUTに出力します
有効な2番目のスニペットは
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
これは、入力として2つの数値を受け取り、2つのスニペットを結合した場合でも合計を出力するため、有効です。たとえば、
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
これは彼らの答えに対する有効なクラックです。
警官の答えが1週間ひび割れていない場合、2番目のスニペットを編集して、答えが安全であることを示すことができます。安全に編集されたら、クラックを試みることはできなくなります。彼らが安全であると編集しない場合は、編集するまで続けようとするかもしれません。
強盗のスレッドの勝者は、最も多くの回答をクラックしたユーザーです。タイブレーカーは、Nクラックに達した時間です。(たとえば、2人の異なるユーザーがそれぞれ5つのひびを持っている場合、5番目のひびを最初に投稿したユーザーが勝者です)十分な時間が経過した後、私は勝者の回答を最も多く投票して受け入れます。
楽しむ!
ルールの説明
最初のスニペットは、入力なしで正しく実行する必要があります。好きなものを出力できますが、この出力は無視されます。スニペットが完了すると、2番目のスニペットが正しく実行されます。
回答を有効にするには、2番目のスニペットを実際に実行する必要があります。これは次のような答えを意味します
import sys sys.exit()
言語を壊さないので無効です。単に終了します。
安全になった後、スコアは両方のスニペットのバイト数になります。
これは、バックに行く仕事へのあなたの答えのために必要な任意の奇妙なエッジケースを明らかにしてくださいあなたの提出が十分な情報を含んでいなければなりません... 前に再現性があることが明らかにされた後に明らかにされています。これは、あなたの答えが安全になったら、あなたが編集することを意味します:ここに私の答えがあります。ああ、ところで、これはSolarisで実行した場合にのみ機能します。あなたの答えは無効であり、削除され、勝利の資格があるとはみなされません。
2番目のスニペットは、合計を出力した後にクラッシュすることができます。出力がまだ正しい限り(たとえば、STDERRに出力することを選択し、クラッシュ情報を大量に取得する場合、これは無効です)
リーダーボード
これは、スコアと名前(アルファベット順)の順に並べられた、少なくとも1つのクラックを持つすべてのユーザーのリストです。クラックを送信する場合は、それに応じてスコアを更新してください。
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
たが、スコープ内にあるものを見つけることができませんでした...System.in
しかし、まだ閉じていないので、この時点で読むこともできます。