ภาษาอังกฤษและภาษาการเขียนโปรแกรมส่วนใหญ่เขียนและอ่านจากซ้ายไปขวาบนลงล่าง แต่ไม่จำเป็นเลย
ในความเป็นจริงสำหรับบล็อกข้อความ
ABC
DEF
ฉันสามารถคิดถึงวิธีที่เกี่ยวข้องแปดวิธีที่อาจถูกอ่าน:
- จากซ้ายไปขวา, จากบนลงล่าง (LTR-TTB): 
ABCDEF - จากบนลงล่างซ้ายไปขวา (TTB-LTR): 
ADBECF - จากซ้ายไปขวา, จากบนลงล่าง (LTR-BTT): 
DEFABC - จากล่างขึ้นบน, จากซ้ายไปขวา (BTT-LTR): 
DAEBFC - จากขวาไปซ้าย, จากบนลงล่าง (RTL-TTB): 
CBAFED - จากบนลงล่างขวาไปซ้าย (TTB-RTL): 
CFBEAD - จากขวาไปซ้าย, จากบนลงล่าง (RTL-BTT): 
FEDCBA - จากล่างขึ้นบน, จากขวาไปซ้าย (BTT-RTL): 
FCEBDA 
ท้าทาย
เขียนบล็อกสี่เหลี่ยมของข้อความที่สามารถอ่านได้ในแปดวิธีข้างต้นเป็นโปรแกรมบรรทัดเดียวแปดรายการในภาษาที่คุณเลือก แต่ละโปรแกรมเหล่านี้ควรแสดงผลเป็นจำนวนเต็มที่แตกต่างกันจากหนึ่งถึงแปด
ไม่สำคัญว่าทิศทางการอ่านจะแสดงผลที่หมายเลขใด แต่ไม่จำเป็นต้องจับคู่กับตัวเลขด้านบน ตัวอย่างเช่นหากบล็อกข้อความของคุณยังอยู่
ABC
DEF
แล้วโปรแกรมABCDEFการส่งออกอาจ5และFEDCBAการส่งออกอาจ2และอื่น ๆ หกโปรแกรมที่จะส่งออก1, 3, 4, 6, 7และ8ในการสั่งซื้อบางส่วน
บล็อกข้อความอาจจะมีตัวอักษรใด ๆ ยกเว้นจุดสิ้นสุดบรรทัด
ผลลัพธ์ควรไปที่ stdout หรือทางเลือกอื่นที่คล้ายกันหากภาษาของคุณไม่มี stdout ที่เหมาะสม ไม่มีอินพุต คุณอาจถือว่าโปรแกรมทำงานในสภาพแวดล้อม REPL
Pietu1998เขียนJSFiddle อย่างเอาเป็นเอาตายที่ให้ 8 โปรแกรมบรรทัดเดียวที่แตกต่างกันเมื่อได้รับบล็อกข้อความ ฉันได้ทำให้มันเป็นตัวอย่างสแต็ก:
<script>function f(n){n=n.split("\n");var e=n.map(function(n){return n.length}).sort()[n.length-1];n=n.map(function(n){return(n+Array(e+1).join(" ")).substring(0,e)});var t=n[0].split("").map(function(e,t){return n.map(function(n){return n[t]}).join("")});n=[n.join(""),n.reverse().join(""),t.join(""),t.reverse().join("")],n=n.concat(n.map(function(n){return n.split("").reverse().join("")})),document.getElementById("a").innerHTML=n.map(function(n,e){return document.getElementById("b").checked?n+"   "+"LLTTRRBB"[e]+"T"+"RRBBLLTT"[e]+"-"+"TBLRBTRL"[e]+"T"+"BTRLTBLR"[e]:n}).join("\n")}</script><textarea onkeyup="f(this.value)" id="c" placeholder="Code"></textarea><br/><input type="checkbox" id="b" onchange="f(document.getElementById('c').value)" checked/> <label for="b">Show directions</label><br/><pre id="a"></pre>
คุณยังสามารถหามาร์ตินรุ่น CJam ที่นี่
เกณฑ์การให้คะแนน
คะแนนของคุณคือพื้นที่ของบล็อกข้อความ (ความกว้างคูณความสูง) การส่งที่มีคะแนนต่ำสุดชนะ (โดยพื้นฐานแล้วรหัสที่เล็กที่สุดจะเป็นผู้ชนะดังนั้นรหัส tag -golf ) Tiebreaker จะไปยังการส่งที่โพสต์ก่อนหน้านี้
ตัวอย่างคือ 2 โดย 3 ดังนั้นคะแนนของมันคือ 6 คะแนนน้อยกว่า 4 (2 โดย 2) เป็นไปไม่ได้เพราะโปรแกรม 8 โปรแกรมบางโปรแกรมจะเหมือนกันและไม่สามารถแสดงค่าที่แตกต่างกันสองค่า
String.prototype.repeat()จะยังใหม่อยู่ ยังยืนยันว่าจะทำงานใน IE ทันที ซอใหม่
                
