ในเกมTetrisมี 7 ชนิดของอิฐหรือTetr i minoesซึ่งเป็นคณิตศาสตร์ที่รู้จักกันในชื่อtetr o minoesเพราะมันถูกสร้างขึ้นด้วย 4 ส่วนเซ็กเมนต์:
มีชื่อ 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 Tetris จะเป็นโปรแกรมที่พิมพ์S
:
ABCABC
123123
ABCABC
123123
ABC
123
ABCABC
123123
ABC
123
(โปรดสังเกตว่าพื้นที่ว่างนำหน้าทั้งหมดเต็มไปด้วยอักขระเว้นวรรคและไม่มีบรรทัดใดมีช่องว่างต่อท้าย)
แนวคิดเดียวกันนี้ใช้กับชิ้นส่วนอื่น ๆ ทั้งหมด 6 ชิ้นและการหมุนตามลำดับ
หมายเหตุ
- โปรแกรมสุดท้าย 19 โปรแกรมทั้งหมดจะต้องทำงานในภาษาโปรแกรมเดียวกัน
- หากต้องการคุณสามารถเพิ่มบรรทัดขึ้นบรรทัดใหม่ให้กับทุกบรรทัดได้โปรแกรม (ไม่ใช่เพียงบางส่วนทั้งหมดหรือทั้งหมด)
- รหัสบล็อกของคุณอาจมีอักขระใด ๆ (รวมถึงช่องว่าง) ที่ไม่ใช่ตัวคั่นบรรทัดจุดสิ้นสุดบรรทัด
- เอาท์พุทจดหมายไปยัง stdout (หรือทางเลือกที่ใกล้เคียงที่สุดในภาษาของคุณ) ด้วยการขึ้นบรรทัดใหม่ที่เป็นตัวเลือก
เกณฑ์การให้คะแนน
การส่งที่มีรหัสบล็อกมีพื้นที่น้อยที่สุด (ความสูงคูณความกว้าง) ชนะ นี้เป็นหลักหมายถึงการที่สั้นที่สุดชนะรหัสซึ่งเป็นเหตุผลที่นี้คือแท็กรหัสกอล์ฟ 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>