12
8つの数字を出力する8つの方法でコードを読み取る
英語とほとんどのプログラミング言語は、左から右、上から下に書かれ、読まれますが、そうである必要はありません。 実際、テキストのブロック用 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、および他の6つのプログラムが出力だろう1、3、4、6、7、および8いくつかのためです。 テキストブロックには、行末記号以外の文字を含めることができます。 言語に適切な標準出力がない場合、出力は標準出力または同様の代替になります。入力はありません。プログラムは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/>&nbsp;<label for="b">Show directions</label><br/><pre …