소개
Alice 는 Martin Ender 의 2 차원 언어로 , 추기경 과 순서의 두 가지 실행 모드가 있습니다 . 명령 포인터가 전달되면 통해 (하나 미러 /나 \)는 다른 곳으로 하나 개의 모드로 전환한다.
이 과제 에서는 명령이 문자열에서 작동하고 명령 포인터가 대각선으로 움직이면서 코드의 가장자리에 튀는 서수 모드에 중점을 둘 것 입니다.
서수 모드에서만 작동하는 간단한 프로그램은 다음 예제와 같이 매우 간단한 스타일로 작성할 수 있습니다.
/fbd/
@aec\
여기서 IP는 첫 번째 셀은 동쪽가는 기수 모드에서 시작하고, 제 1 미러를 통과 대각선 이동 튀는 명령 실행 시작 a, b및 c. 그런 다음이 다른 거울을 향해 남쪽으로 이동 한 다음, 서쪽을 향해 다시 수신 거부 명령을 발생 시작하게 북동쪽 거울을 발견 d, e, f, 그리고 마지막으로 @, 프로그램을 종료한다.
이러한 종류의 구조는 매우 작지만 작성 및 유지 관리가 쉽지 않습니다 (하나의 명령을 추가하면 대부분의 코드를 다시 정렬해야 할 수도 있습니다!). 따라서 형식 지정에 도움을 주길 바랍니다.
작업
각 명령이 인쇄 가능한 단일 ASCII 문자 인 일련의 명령이있는 경우, 순서의 첫 번째 절반을 두 번째 행의 첫 번째 문자부터 시작하여 항상 대각선으로 오른쪽으로 이동할 수 있도록 두 행으로 재정렬하십시오. 후반은 나머지 문자를 오른쪽에서 왼쪽으로 읽어 읽을 수 있습니다. 거울과 종료 기호에 대해 걱정하지 마십시오. 직접 추가하겠습니다.
예를 들어 입력 abcdef이 주어지면 출력해야합니다.
fbd
aec
입력 길이가 홀수 인 경우, 발생하는 명령 순서가 동일하게 유지되는 한 Alice (1 개의 Alice)에 단일 공백을 추가해야합니다. 한 문자 씩 길이가 다른 두 줄을 출력하도록 선택할 수도 있습니다.이 경우 짧은 줄은 끝에 공백이있는 것으로 간주됩니다.
규칙
이것은 코드 골프가장 짧은 답변은 바이트 단위로 이깁니다!
- 기본 입 / 출력 방법 중 하나를 통해 입 / 출력 할 수 있습니다
- 입력 가능한 한 줄의 인쇄 가능한 ASCII 문자로 구성
- 출력에서 단일 후행 줄 바꿈이 허용됩니다.
- Alice 프로그램으로 실행될 때 (예 : 패딩 공간이 문자열 리터럴 안에 삽입 된 경우) 프로그램의 일부 출력이 완전히 올바르게 동작하지 않을 수 있습니다. 이러한 상황에 대해 걱정할 필요가 없습니다.
- 표준 허점 은 금지되어 있습니다
테스트 사례
--Input
abcdef
--Output
fbd
aec
--Input
123
--Output
2
13
OR
31
2
OR
3
12
OR
32
1
--Input
O
--Output
O
OR
O
--Input
"Hello, World!"o
--Output
oH!lloo
""edlr,W
--Input
i.szR.szno
--Output
o.zz.
inssR
--Input
" ^^} .~[}.~~[}{~~{}[^^^^.""!}"r.h~;a*y'~i.*So
--Output
o *^i}'.*[;.h~r}}~"{.[^
"S .^~ y~a}~~.["{!~"}^^^
(Odd length, your solution may be different)