RoboCritters ( etymology )는 완전히 새로운 난해한 프로그래밍 언어 입니다. 일반적인 연산자 대체 체계보다 약간 더 복잡한 Brainfuck (BF) 의 변형 입니다 . RoboCritters의 모든 프로그램은 7 자만 포함하는 사각형의 텍스트 격자와 격자 모양을위한 개행입니다.. []/\|
RoboCritters 프로그램 예 :
|\/||./|[]||
[..][][] |
|/\|[..][..]
[..] \/\/
RoboCritters 프로그램을 BF로 번역하려면 그리드에서 줄 바꿈이 아닌 각 문자를 일반적인 읽기 순서 (왼쪽에서 오른쪽으로, 위에서 아래로)로보십시오 (예 :) |\/||./|[]||[..][][] ||/\|[..][..][..] \/\/
.
현재 캐릭터에서 오른쪽 아래로 확장되는 그리드의 4x2 섹션이 아래에 나열된 8 개의 로봇 크 리터 중 하나와 정확히 일치 하면 해당 BF 명령 ( ><+-.,[]
)을 (초기 비어 있음) BF 프로그램에 추가하십시오.
4 × 2 그리드 섹션 이 로봇 크 리터 와 일치하지 않거나 범위를 벗어나 면 BF 프로그램에 아무것도 추가되지 않습니다.
조이 봇,
>
명령 :[..] \][/
Calmbot,
<
명령 :[..] /][\
오징어,
+
명령 :[..] //\\
스파이더 봇,
-
명령 :[..] ||||
버니 봇,
.
명령 :[][] [..]
치약,
,
명령 :[..] |/\|
폭스 봇,
[
명령 :|\/| [..]
배트 봇,
]
명령 :[..] \/\/
예제 프로그램을 읽으면
|\/||./|[]||
[..][][] |
|/\|[..][..]
[..] \/\/
먼저 Foxbot (열 1, 행 1), Toothbot (c1, r2), Bunnybot (c5, r2) 및 Batbot (c9, r3)이 발생 함을 알 수 있습니다. 이것은 BF 프로그램에 해당합니다 [,.]
.
Foxbot과 Toothbot이 겹칩니다. 이것은 의도적입니다. 로봇 크리 터는 겹칠 때 다르게 해석되지 않습니다 .
도전
RoboCritters 프로그램에서 가능한 가장 짧은 프로그램을 작성하고 BF에 해당하는 프로그램을 출력하십시오. BF를 실행할 필요가 없거나 유효한지 확인하고 RoboCritters 코드를 BF 코드로만 변환하십시오.
세부
모든 입력 RoboCritters 프로그램은 유효합니다. 즉, 7 개의 문자 만 포함하는 정확히 직사각형의 텍스트 블록이 될
. []/\|
것입니다. 줄 바꿈은 편리한 공통 표현으로 표시 될 수 있습니다 . 선택적으로 프로그램에 단일 후행 줄 바꿈이 있다고 가정 할 수 있습니다.0 × 0 비어 있거나 단일 개행 프로그램을 포함하여 4 × 2보다 작은 RoboCritters 프로그램을 지원해야합니다. 이들은 모두 빈 BF 프로그램 (빈 문자열)에 해당합니다.
출력 BF 프로그램은 8 개의 BF 명령 문자 만 포함하는 1 행 문자열이어야합니다
><+-.,[]
. 선택적으로 단일 후행 줄 바꿈이있을 수 있습니다.일반적인 방법으로 입력하고 (stdin / text 파일 / 명령 줄) stdout 또는 가장 가까운 언어로 출력하십시오.
프로그램 대신 RoboCritters 프로그램을 문자열로 사용하여 BF 프로그램 문자열을 인쇄하거나 반환하는 함수를 작성할 수 있습니다.
예
입력 : (위 예제의 변형)
|\/|[][] [..][][] |/\|[..] \/\/
산출:
[,.]
입력 : (모든 로봇 동물 테스트)
[..][[[[[..]]. ]|\/| \][/[..]//\\[..][..] [..]/][\[][]|/\|[..] ||||/\| [..]| |\/\/
산출:
>+[<,-.]
입력:
[..] [..] [..] [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [..] [][] [][] [..] [..] [..] [][] [..] [..] [][] [..] [..] [][] [..] [][] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [][] [..] [..] [..] [][] //\\ //\\ //\\ //\\ //\\ //\\ //\\ //\\ [..] \][/ //\\ //\\ //\\ //\\ [..] \][/ //\\ //\\ \][/ //\\ //\\ //\\ \][/ //\\ //\\ //\\ \][/ //\\ /][\ /][\ /][\ /][\ |||| \/\/ \][/ //\\ \][/ //\\ \][/ |||| \][/ \][/ //\\ [..] /][\ \/\/ /][\ |||| \/\/ \][/ \][/ [..] \][/ |||| |||| |||| [..] //\\ //\\ //\\ //\\ //\\ //\\ //\\ [..] [..] //\\ //\\ //\\ [..] \][/ \][/ [..] /][\ |||| [..] /][\ [..] //\\ //\\ //\\ [..] |||| |||| |||| |||| |||| |||| [..] |||| |||| |||| |||| |||| |||| |||| |||| [..] \][/ \][/ //\\ [..] \][/ //\\ //\\ [..]
출력 : ( BF Hello World program )
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
입력 : (로봇 크 리터 없음)
/\\\[]. ]..[..] \\//||\
출력 : (빈 문자열)
채점
바이트 단위로 가장 짧은 제출이 이깁니다. ( 핸디 바이트 카운터. ) Tiebreaker는 가장 높은 투표를 한 게시물입니다.