以下は、0〜9の数字のピクセル化された5 x 7フォントです。
.███.
█...█
█...█
█...█
█...█
█...█
.███.
..█..
███..
..█..
..█..
..█..
..█..
█████
.███.
█...█
....█
...█.
..█..
.█...
█████
.███.
█...█
....█
..██.
....█
█...█
.███.
█..█.
█..█.
█..█.
█████
...█.
...█.
...█.
█████
█....
█....
.███.
....█
█...█
.███.
.███.
█...█
█....
████.
█...█
█...█
.███.
█████
....█
....█
...█.
...█.
..█..
..█..
.███.
█...█
█...█
.███.
█...█
█...█
.███.
.███.
█...█
█...█
.████
....█
█...█
.███.
(このフォントとこのページは、ブラウザコンソールまたはURLバーの接頭辞javascript:
:でこのJavaSciptコードを実行すると、見栄えがよくなります$('#question pre,.answer pre').css('line-height',1)
。)
.
上記のフォントで空のスペースを表すテキスト()と、塗りつぶされたスペースを表すテキスト()の2つの等しいサイズの長方形のテキストブロックを記述します█
。
これらの2つのテキストブロックが上の数字の1つと同じ5×7パターンに配置されている場合、結果の大きなテキストブロックはその数字を標準出力に出力するプログラムになります。これは、10桁すべてで機能するはずです。
たとえば、.
テキストブロックが
---
'''
そして、あなたの█
テキストブロックました
ABC
123
その後、プログラム
---ABCABCABC---
'''123123123'''
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
---ABCABCABC---
'''123123123'''
出力する必要があります0
。同様に、プログラム
------ABC------
''''''123''''''
ABCABCABC------
123123123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
ABCABCABCABCABC
123123123123123
出力すべき1
、などのためのプログラムまでON 9
。
このスタックスニペットを使用して、数字型のプログラムを作成できます。
<style>textarea{font-family:monospace;}</style><script>function go(){var t=parseInt(document.getElementById("digit").value[0]);if(isNaN(t))return void alert("Invalid digit.");for(var e=document.getElementById("empty").value.split("\n"),n=document.getElementById("filled").value.split("\n"),l=[],o=0;o<7*e.length;o++){l[o]="";for(var d=0;5>d;d++)l[o]+=font[t][Math.floor(o/e.length)][d]?n[o%n.length]:e[o%e.length]}document.getElementById("output").value=l.join("\n")}font=[[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,0,1,0,0],[1,1,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[1,1,1,1,1]],[[0,1,1,1,0],[1,0,0,0,1],[0,0,0,0,1],[0,0,0,1,0],[0,0,1,0,0],[0,1,0,0,0],[1,1,1,1,1]],[[0,1,1,1,0],[1,0,0,0,1],[0,0,0,0,1],[0,0,1,1,0],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[1,0,0,1,0],[1,0,0,1,0],[1,0,0,1,0],[1,1,1,1,1],[0,0,0,1,0],[0,0,0,1,0],[0,0,0,1,0]],[[1,1,1,1,1],[1,0,0,0,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,0],[1,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[1,1,1,1,1],[0,0,0,0,1],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,0,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,1],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]]]</script><textarea id='empty' rows='8' cols='32' placeholder='empty space text block...'></textarea><textarea id='filled' rows='8' cols='32' placeholder='filled space text block...'></textarea><br>Digit <input id='digit' type='text' value='0'> <button type='button' onclick='go()'>Generate</button><br><br><textarea id='output' rows='16' cols='64' placeholder='output...' style='background-color: #eee;' readonly></textarea>
詳細
- 10個の大きなテキストブロックプログラムはどれも入力を必要としません。1桁の数字とオプションの末尾の改行のみを出力します。stdoutまたは同様の代替への出力。
- どのプログラムも、独自のソースコードを読み取ったりアクセスしたりすることはできません。これを厳しい馬の挑戦のように扱ってください。
- テキストブロックは同一ではない可能性があり、ゼロ以外の次元でなければなりません。
- テキストブロックには、行末記号以外の文字を含めることができます。
- 10個のプログラムは、同じ言語で記述された本格的なプログラムである必要があり、REPLスニペットではありません。必要に応じて、末尾の改行をすべてに追加することも、すべてに追加しないこともできます。
得点
スコアは、テキストブロックの1つの領域(幅と高さ)です。(これらは同じサイズなので、両方のブロックをカウントしても意味がありません。)例の面積は3 x 2で、スコアは6です。
最も低いスコアが勝ちます。同点の場合、最も投票数の多い回答が優先されます。
text blocks may not be identical
本当に?すべての数字がまったく同じコードである場合に、魔法のように異なる数字を返す2つの同一のコードブロックを与えることで、誰かがこのルールを破るのを見たいです^^
var t=parseInt(document.getElementById("digit").value[0]);if(isNaN(t))return void alert("Invalid digit.");
として記述できますがvar t=document.getElementById("digit").value[0]/1;if(t!=t)return void alert("Invalid digit.");
、これは同じですが短いです。改善できる点がいくつかありますが、見た目は素晴らしいです!