자신의 언어 코드 선택


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 개의 대각 대각선을 시각화 한 것입니다.

반 대각선에 동일한 문자가 두 번 포함되어 있지 않으면 대각선으로 고유 한 격자를 호출합니다 . 그리드에이 속성이 있으면 두 경로에 동일한 문자열이 포함되지 않습니다. 명확히하기 위해 시각화 자체는 기본적으로 대각선 고유 의 반대 입니다.

도전

대각선으로 고유 한 16x16 격자를 디자인하여 가능한 많은 경로가 가능한 Jabberwocky한 많은 언어로 STDOUT (선택적 후행 줄 바꿈)으로 인쇄 하는 유효한 코드가 되도록하십시오. 각 코드는 전체 프로그램이거나 return 문이없는 매개 변수가없는 함수의 본문 일 수 있습니다 ( 일부 보일러 플레이트 함수 / 클래스 / 네임 스페이스에 코드 가 필요한 언어는 권장하지 않습니다 ).

참고 : 간단하게하기 위해 Ypnypn처럼 사용되지 않은 셀에 예약 된 문자를 사용할 수 있습니다 .

유효한 각 경로마다 유효한 하나의 프로그래밍 언어 를 명확하게 명시하십시오 .

우승자는 위의 목록에 포함 된 가장 많은 언어로 제출 된 것입니다. (또는, 계산하려는 각 언어에 대해 해당 언어에 유효한 하나의 경로를 표시하지만 두 언어에 대한 경로는 계산하지 않아야합니다.)

동점 일 경우, 유효한 경로에 포함 되지 않은 그리드 셀을 세십시오 . 미사용 세포가 적습니다. 여전히 동점 이 있다면 , 가장 많은 (순) 투표로 답변을 수락합니다.

검증 스크립트

그리드가 대각선으로 고유하다는 것을 검증하는 데 사용할 수있는 작은 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
'틀에는 brillig하고 slithey 토브는 넘길 한쪽을 발로에 환류하고 gimble을했다 ... (예, 내가 기억하는 것이 있습니다))
손잡이

이것은 Calvin 's Hobbies의 질문 중 하나 인 것 같습니다. 이는 환상적인 성과입니다. 나는 아직도 그것이 어떻게되었는지 이해할 수 없었습니다.
Soham Chowdhury

답변:


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)


실제로, 하스켈 코드는 문자열을 따옴표로 인쇄합니다. 그들없이 인쇄하려면 당신이 필요합니다 putStr[ln].... 또한 haskell에는이 없습니다 ;;. 나는 당신이 그것을 Ocaml과 혼합했다고 생각합니다.
자랑스런 Haskeller

Ocaml조차도 그것을 가지고 있지 않습니다. (을 입력하면 온라인 통역사가 오류를 발생시킵니다 ;;). 어쨌든 Haskell을 다른 것으로 대체했습니다.
Optimizer

Pyth는 쉽게 추가 할 수 있습니다. | p b"Jabberwocky" |예를 들어
isaacg isaacg

@isaacg 감사합니다! Pyth도 살펴 보려고했습니다. 이렇게하면 시간이 절약됩니다 :)
Optimizer

@isaacg BTW, 그러한 경로는 어디에 있습니까?
Optimizer

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"   ; |

나는 그들 모두를 테스트 할 수 없었습니다, 그래서 뭔가 작동하지 않는 경우 알려주십시오.


둘 이상의 언어에 대해 동일한 경로를 사용하여 점수에 추가 할 수 없다고 생각합니다.
Optimizer

1
@Optimizer 나는 두 번 사용 된 경로가 없다고 생각합니다. 물론 그 차이는 매우 작습니다.
grc

1
넌 교활한 사람이야! : P
Optimizer

PHP의 경우 상용구를 제거한 후`echo "foobar"`(한번에 1 칸 이상)가 잘 인쇄됩니다. 공백이 없습니다. 여기 사용해보십시오
Optimizer

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"|

많은이 있어야 더 기본 방언 작동합니다. 하지만 아직 테스트 할 시간이 없습니다.


둘 이상의 언어에 대해 동일한 경로를 사용할 수 없습니다. 따라서 모든 기본 방언이 적합하지는 않습니다.
Optimizer

2
@Optimizer 적어도 줄 번호가 있고 오버플로를 확인하지 않고 (을 가지고 있어야 ?하는 print) 방언이 작동해야합니다 ... 다른 줄 번호를 선택하십시오.
jimmy23013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.