独自の言語コードを選択してください


17

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スニペットを簡単にまとめました。

  1. 行くオンラインCJamインタプリタ
  2. 次のコードを貼り付けます

    l:A;
    qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique"
    
  3. 入力フィールドで、最初の行に予約文字を入力し(予約文字を使用しない場合は未使用文字を使用します)、2行目から17行目までグリッドを使用します。たとえば、Ypnypnの答え:

    ~
     pr~~~~~~~~~~~~~
     tin~~~~~~~~~~~~
    ~ypt(~~~~~~~~~~~
    ~~ef(~~~~~~~~~~~
    ~~  "J~~~~~~~~~~
    ~~~~~ab~~~~~~~~~
    ~~~~~~be~~~~~~~~
    ~~~~~~~rwo~~~~~~
    ~~~~~~~~~ck~~~~~
    ~~~~~~~~~~y~~~~~
    ~~~~~~~~~~\n~~~~
    ~~~~~~~~~~~")) ~
    ~~~~~~~~~~~  ;  
    ~~~~~~~~~~~~~~~ 
    ~~~~~~~~~~~~~~~ 
    ~~~~~~~~~~~~~~~ 
    
  4. 走る

バグがあると思われる場合はお知らせください。


6
'Trillsであり、slitheyのトウブは輪に回って動き回った...(はい、私はそれを記憶している);)
Doorknob

これは、Calvinの趣味の質問の1つのように聞こえますが、これは素晴らしい成果です。私はまだそれがどのように行われたかを理解できていません。
ソーハムチョードリー

回答:


21

30 33 35言語

予約文字: ~

 println!~~~~~~~
 puts    (1,~~~~
    echo   '~~~~
"cWprintfn"Ja~~~
Eork~~~;'Jabbe~~
\ui)K00~~~~~br~~
]tteL~0~~~~~ew~~
]<~ln(0~~~~~ro~~
`<~~~ 0~~~~~wc~~
m"~~~ "~~~~~ok~~
rJ~~~'J~~~~~cy~~
j"<< "a~~~~~k'..
^~~~~~bberwoy");
f~~~~~~~~~~c'  ;
t~~~~~~~~~~ky"  
XX"););  5f+'); 

言語:

01. Rust        | println! (  "Jabberwocky") ;  |
02. Groovy      | println     "Jabberwocky"     |
03. E           | println  (  "Jabberwocky")    |
04. Swift       | println  (  "Jabberwocky") ;  |
05. Julia       | println  (  "Jabberwocky");;  |
06. Processing  | println  (  "Jabberwocky")  ; |
07. Falcon      | printl   (  "Jabberwocky")    |
08. ALGOL 68    | print    (  "Jabberwocky")    |
09. Vala        | print    (  "Jabberwocky") ;  |
10. Pawn        | print    (  "Jabberwocky");;  |
11. Batsh       | print    (  "Jabberwocky")  ; |
12. freeBASIC   | print       "Jabberwocky"     |
13. Rebol       | print       "Jabberwocky"  ;  |
14. Red         | print       "Jabberwocky"   ; |
15. AWK         | print       'Jabberwocky'     |
16. Perl        | print       'Jabberwocky'  ;  |
17. bc          | print       'Jabberwocky'   ; |
18. Euphoria    |  puts    (1,"Jabberwocky")    |
19. C           |  puts    (  "Jabberwocky") ;  |
20. Tcl         |  puts       "Jabberwocky"     |
21. Ruby        |  puts       'Jabberwocky'     |
22. Zsh         |      echo   "Jabberwocky"     |
23. Bash        |      echo   "Jabberwocky"  ;  |
24. tcsh        |      echo   "Jabberwocky"   ; |
25. PHP         |      echo   'Jabberwocky'     |
26. Fish        |      echo   'Jabberwocky'  ;  |
27. Dash        |      echo   'Jabberwocky'   ; |
28. F#          |      printfn"Jabberwocky"   ; |
29. C++         |    cout<<"J"<< "abberwocky" ; |
30. D           |     Writeln(  'Jabberwocky'); |
31. Pascal      |     WriteLn(  'Jabberwocky'); |
32. Delphi      |     Writeln(  "Jabberwocky"); |
33. GolfScript  |      print;'Jabberwocky'..;;  |
34. CJam        |   "E\]]`mrj^ftXX"););  5f+'); |
35. Pyth        |      pk)K00000"Jabberwocky"   |

(ユーザー23013のおかげでPythとCJam)


実際、haskellコードは文字列を引用符で印刷します。それらなしで印刷するには必要putStr[ln]...です。また、haskellにはありません;;。あなたはそれをOcamlと混ぜたと思います。
誇り高いhaskeller 14年

Ocamlにもそれはありません。(私が入れた場合、オンライン通訳はエラーを出します;;)。とにかく、Haskellを別のものに置き換えました。
オプティマイザー14年

Pythは簡単に追加でき| p b"Jabberwocky" |ます
-isaacg 14年

@isaacgありがとう!私もPythを調べていました。これにより時間を節約できます:)
オプティマイザー14年

@isaacgところで、そのような道はどこですか?
オプティマイザー14年

15

17言語

以下.は、予約文字としてのグリッドです。

 prin...........
 utstln!........
       (1,......
<?echo    ".....
.........'Jab...
............b...
............e...
............r...
............w...
............o...
............c...
............k...
............y"..
............' ).
.............  ;
..............  

そして、ここに言語とそのパスがあります(垂直バーは無視してください):

01. Rust        | println!(   "Jabberwocky" ) ; |
02. Swift       | println (   "Jabberwocky" ) ; |
03. Scala       | println (   "Jabberwocky" )   |
04. Falcon      | printl  (   "Jabberwocky" )   |
05. Vala        | print   (   "Jabberwocky" ) ; |
06. Lua         | print   (   'Jabberwocky' ) ; |
07. ALGOL 68    | print   (   "Jabberwocky" )   |
08. Dart        | print   (   'Jabberwocky' )   |
09. Rebol       | print       "Jabberwocky"   ; |
10. Perl        | print       'Jabberwocky'   ; |
11. AWK         | print       "Jabberwocky"     |
12. Euphoria    | puts    (1, "Jabberwocky" )   |
13. C           | puts    (   "Jabberwocky" ) ; |
14. Tcl         | puts        "Jabberwocky"     |
15. Ruby        | puts        'Jabberwocky'     |
16. Bash        |     echo    "Jabberwocky"     |
17. PHP         |     echo    "Jabberwocky"   ; |

私はそれらのすべてをテストすることができなかったので、何かがうまくいかないかどうか知らせてください。


複数の言語に同じパスを使用してスコアに追加することはできないと思います。
オプティマイザー14年

1
@Optimizer 2回使用されるパスはないと思います。確かに、違いはごくわずかです。
grc 14年

1
うーん、あなたは卑劣な男!:P
オプティマイザー14年

PHPの場合、ボイラープレートを削除した後、 `echo" foobar "`(毎回1スペース以上)で問題なく印刷されます。空白なし。ここで試してください
オプティマイザー14年

2
そのあるコードから定型を削除しても大丈夫<?ここに
オプティマイザ

3

18言語以上

予約文字:~

         "~~~~~~
12345678 "~~~~~~
12345678 "~~~~~~
12345678 "~~~~~~
1234567: ea~~~~~
1234567: c;~~~~~
1234567: hL~~~~~
1234567: o'~~~~~
1234567:  Jab~~~
1234567:?""""~~~
~~~~~~~~~Jabberw
~~~~~~~~~~~~~~~o
~~~~~~~~~~~~~~~c
~~~~~~~~~~~~~~~k
~~~~~~~~~~~~~~~y
~~~~~~~~~~~~~~~"

言語:

CJam                             |             ea;L'J"abberwocky"|
GolfScript                       |              cho "Jabberwocky"|
Bc                               |                  "Jabberwocky"|
Bash                             |         """"echo J"abberwocky"|
Zsh                              |           ""echo J"abberwocky"|
Fish                             |             echo J"abberwocky"|
Tcsh                             |         """"echo Ja"bberwocky"|
Dash                             |           ""echo Ja"bberwocky"|
Ksh                              |             echo Ja"bberwocky"|
Mksh                             |         """"echo Jab"berwocky"|
Yash                             |           ""echo Jab"berwocky"|
Sash                             |             echo Jab"berwocky"|
Posh                             |         """"echo "Jabberwocky"|
Csh                              |           ""echo "Jabberwocky"|
PHP                              |             echo "Jabberwocky"|

そして...

FreeBasic                        |                 ?"Jabberwocky"|
QBasic                           | 12345678        ?"Jabberwocky"|
QB64                             | 123456788       ?"Jabberwocky"|

動作するさらに多くの基本的な方言があるはずです。しかし、まだすべてをテストする時間はありません。


複数の言語に同じパスを使用できないことに注意してください。だから、すべての基本的な方言はに収まるません。
オプティマイザ

2
@Optimizer少なくとも、行番号を持ち?、オーバーフローをチェックしない(およびfor を持つprint)方言は動作するはずです...別の行番号を選択するだけです。
jimmy23013 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.