16x16の印刷可能なASCII文字(コードポイント0x20〜0x7E)のグリッドを見てみましょう。次の例のように、左上から右下隅まで30から15のパスがあり、直交移動のみを行います。
##..............
.#..............
.######.........
......##........
.......##.......
........#.......
........#.......
........#.......
........###.....
..........###...
............#...
............####
...............#
...............#
...............#
そのような各パスは、正確に31文字で構成されます。これらの各文字は、31個の対角線のいずれかとは異なることに注意してください。
0123456789ABCDEF
123456789ABCDEFG
23456789ABCDEFGH
3456789ABCDEFGHI
456789ABCDEFGHIJ
56789ABCDEFGHIJK
6789ABCDEFGHIJKL
789ABCDEFGHIJKLM
89ABCDEFGHIJKLMN
9ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
BCDEFGHIJKLMNOPQ
CDEFGHIJKLMNOPQR
DEFGHIJKLMNOPQRS
EFGHIJKLMNOPQRST
FGHIJKLMNOPQRSTU
これはグリッドの例ではありません。これは、31個の対角線を視覚化したものです。
対角線に同じ文字が2回含まれていない場合、対角線的に一意のグリッドを呼び出します。グリッドにこのプロパティがある場合、2つのパスに同じ文字列が含まれることはありません。(明確にするために、視覚化自体は基本的に対角線的に一意の反対です。)
チャレンジ
可能な限り多くのパスが、可能な限りJabberwocky
多くの言語でSTDOUT(オプションの末尾の改行付き)に出力される有効なコードになるように、斜めに一意の16x16グリッドを設計します。各コードは、完全なプログラム、またはreturnステートメントのないパラメーターレス関数の本体のいずれかです(これは、定型関数/クラス/名前空間にコードを置く必要がある言語を妨げないためです)。
注:簡単にするために、Ypnypnのように未使用のセルに予約文字を使用できます。
有効なパスごとに、有効なプログラミング言語を1つ明記してください。
受賞者は、上記のリストに含まれる言語の数が最も多い作品です。(または、カウントする言語ごとに、その言語で有効なパスを1つ表示しますが、2つの言語のパスをカウントしないようにしてください。)
同点の場合、有効なパスでカバーされていないグリッドセルを数えます。未使用のセルが少なくなります。まだ同点の場合は、最も(正味の)票数の回答を受け入れます。
検証スクリプト
グリッドが対角線的に一意であることを検証するために使用できる小さなCJamスニペットを簡単にまとめました。
- 行くオンラインCJamインタプリタ。
次のコードを貼り付けます
l:A; qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique"
入力フィールドで、最初の行に予約文字を入力し(予約文字を使用しない場合は未使用文字を使用します)、2行目から17行目までグリッドを使用します。たとえば、Ypnypnの答え:
~ pr~~~~~~~~~~~~~ tin~~~~~~~~~~~~ ~ypt(~~~~~~~~~~~ ~~ef(~~~~~~~~~~~ ~~ "J~~~~~~~~~~ ~~~~~ab~~~~~~~~~ ~~~~~~be~~~~~~~~ ~~~~~~~rwo~~~~~~ ~~~~~~~~~ck~~~~~ ~~~~~~~~~~y~~~~~ ~~~~~~~~~~\n~~~~ ~~~~~~~~~~~")) ~ ~~~~~~~~~~~ ; ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
走る
バグがあると思われる場合はお知らせください。