영어와 대부분의 프로그래밍 언어는 왼쪽에서 오른쪽으로, 위에서 아래로 읽히지 만 읽을 필요는 없습니다 .
실제로 텍스트 블록
ABC
DEF
읽을 수있는 8 가지 관련 방법을 생각할 수 있습니다.
- 왼쪽에서 오른쪽, 위에서 아래 (LTR-TTB) :
ABCDEF - 위에서 아래로, 왼쪽에서 오른쪽으로 (TTB-LTR) :
ADBECF - 왼쪽에서 오른쪽, 아래에서 위로 (LTR-BTT) :
DEFABC - 하단에서 상단, 왼쪽에서 오른쪽 (BTT-LTR) :
DAEBFC - 오른쪽에서 왼쪽, 위에서 아래 (RTL-TTB) :
CBAFED - 위에서 아래로, 오른쪽에서 왼쪽 (TTB-RTL) :
CFBEAD - 오른쪽에서 왼쪽으로, 위에서 아래로 (RTL-BTT) :
FEDCBA - 하단에서 상단, 오른쪽에서 왼쪽 (BTT-RTL) :
FCEBDA
도전
선택한 8 가지 단일 라인 프로그램 으로 위의 8 가지 방법으로 읽을 수있는 직사각형의 텍스트 블록을 작성 하십시오. 이러한 각 프로그램은 1에서 8까지 다른 정수를 출력해야합니다.
어떤 판독 방향이 어떤 숫자를 출력하는지는 중요하지 않으며, 위의 숫자와 일치하지 않아도됩니다. 예를 들어 텍스트 블록이 여전히
ABC
DEF
다음 프로그램의 ABCDEF힘 출력 5과 FEDCBA힘 출력 2, 및 다른 육 개 프로그램 것 출력 1, 3, 4, 6, 7, 그리고 8어떤 순서로한다.
텍스트 블록은 줄 종결 자를 제외한 모든 문자를 포함 할 수 있습니다 .
언어에 적절한 stdout이 없으면 출력이 stdout 또는 유사한 대안으로 이동해야합니다. 입력이 없습니다. 프로그램이 REPL 환경에서 실행되고 있다고 가정 할 수 있습니다.
Pietu1998는 자선 적으로 자발적 으로 텍스트 블록이 주어 졌을 때 8 가지의 다른 한 줄 프로그램을 제공 JSFiddle 을 . 스택 스 니펫으로 만들었습니다.
<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>
Martin의 CJam 버전은 여기 에서 여전히 찾을 수 있습니다 .
채점
점수는 텍스트 블록의 영역 (너비와 높이)입니다. 가장 낮은 점수를받은 제출이 승리합니다. (실제로 가장 작은 코드가 승리하므로 코드 골프 태그입니다.) Tiebreaker는 이전에 게시 된 제출물로갑니다.
예는 2 x 3이므로 점수는 6입니다. 4 개 (2 x 2) 미만의 점수는 불가능하므로 8 개의 프로그램 중 일부가 동일하고 두 개의 다른 값을 출력 할 수 없기 때문입니다.
String.prototype.repeat()여전히 새로운 것 같습니다 . 또한 IE에서 작동하는 것으로 확인되었습니다. 새로운 바이올린

