ゲームTetrisには、7種類のレンガまたはTetr i minoesがあり、それらはすべて4つの正方形セグメントで作られているため、数学的にtetr o minoesとして知られています。
これらの名前は、I、J、L、O、S、T、およびZという名前で、おおよその形状に対応しています。90°の回転をカウントすると、合計19個のユニークな形状があります。
I
I
I
I
IIII
J
J
JJ
JJJ
J
JJ
J
J
J
JJJ
L
L
LL
L
LLL
LL
L
L
LLL
L
OO
OO
SS
SS
S
SS
S
TTT
T
T
TT
T
T
TTT
T
TT
T
ZZ
ZZ
Z
ZZ
Z
チャレンジ
これらの19の形状の元になるセグメントとして機能する長方形のコードブロックを記述します。このコードをいずれかの形状に配置すると、その形状に関連付けられた単一の大文字を出力するプログラムを作成する必要があります。これは、19個すべての図形で機能する必要があります。
19個の図形の一部に存在する先頭の空の領域は、スペース()で完全に埋められています。後続の空の領域には何も塗りつぶされません(したがって、プログラムは常に正確に長方形とは限りません)。
例
これがあなたのコードブロックだと仮定します:
ABC
123
次に、ブロックをSテトリスのピースに配置すると、次のように出力されるプログラムになりますS
。
ABCABC
123123
ABCABC
123123
ABC
123
ABCABC
123123
ABC
123
(先頭の空のスペースはすべてスペース文字で埋められ、行の末尾にスペースがないことに注意してください。)
同じ考え方が、他の6つのピースすべてとそれぞれの回転に適用されます。
ノート
- 19の最終プログラムはすべて、同じプログラミング言語で実行されます。
- 必要に応じて、単一の末尾の改行をすべてのプログラムに追加することができます(一部だけではなく、すべてまたはすべてなし)。
- コードブロックには、行末記号ではない文字(スペースを含む)を含めることができます。
- オプションの末尾の改行を使用して、標準出力(または言語に最も近い代替)に文字を出力します。
得点
コードブロックの面積が最小(幅と高さ)の提出が優先されます。これは本質的に最短のコードが勝つことを意味し、これがタグ付けされたcode-golfである理由です。Tiebreakerは、最も高い投票数の回答に進みます。
このABC\n123
例の面積は3×2 = 6です。
スニペット
コードブロックを指定すると、このスニペットは19のプログラムすべてを生成します。
<script>function drawShape(X,n,v){for(var t="",e=0;e<v.length;e++)for(var l=0;l<n.length;l++){for(var r=0;r<v[e].length;r++)t+="X"===v[e][r]?n[l]:X[l];t+="\n"}return t}function go(){var X=document.getElementById("input").value;if(0!=X.length){var n=X.replace(/./g," ").split("\n");X=X.split("\n");for(var v="I (v1):|I (v2):|J (v1):|J (v2):|J (v3):|J (v4):|L (v1):|L (v2):|L (v3):|L (v4):|O:|S (v1):|S (v2):|T (v1):|T (v2):|T (v3):|T (v4):|Z (v1):|Z (v2):".split("|"),t="X\nX\nX\nX|XXXX| X\n X\nXX|XXX\n X|XX\nX\nX|X\nXXX|X\nX\nXX| X\nXXX|XX\n X\n X|XXX\nX|XX\nXX| XX\nXX|X\nXX\n X|XXX\n X|X\nXX\nX| X\nXXX| X\nXX\n X|XX\n XX| X\nXX\nX".split("|"),e="",l=0;l<v.length;l++)e+=v[l]+"\n\n"+drawShape(n,X,t[l].split("\n"))+"\n";e=e.substring(0,e.length-2),document.getElementById("output").value=e}}</script><style>html *{font-family: monospace;}</style>Code Block:<br><textarea id='input' rows='8' cols='64'>ABC
123</textarea><br><button type='button' onclick='go()'>Go</button><br><br>All 19 Programs:<br><textarea id='output' rows='24' cols='64'></textarea>