비싼 건축 프로그램에 돈을 지불하고 싶지 않으므로 자신의 롤을 결정합니다. 건물을 설계하기 위해 ASCII를 사용하기로 결정했습니다. 프로그램은 특정 방식으로 단일 문자열 형식을 취하며 프로그램은 건물을 출력합니다.
입력
입력은 한 줄의 문자로 구성됩니다. 문자 만 포함한다고 가정 할 수있다 a-j
, 숫자 1-9
및 기호 -
등을 +
.
출력 설명
각 문자 a-j
에 대해 프로그램은 다음과 같이 세로선을 출력합니다. 이것을 열이라고 부릅니다.
.
..
...
****
*****
******
-------
--------
+++++++++
++++++++++
abcdefghij
예를 들어, 입력 abcdefgfedefghgfedc
은 다음과 같이 출력됩니다.
.
* ***
*** *****
***** *******
---------------
-----------------
++++++++++++++++++
+++++++++++++++++++
문자 앞에 양의 정수 n
가 n
붙으면 열 아래 에 공백 문자 가 추가 됩니다. 이것을 오프셋이라고합니다. 예를 들어 S
공백을 표기하기 위해 입력 3b2b3b
하면 다음과 같이 출력됩니다.
+ +
+++
S+S
SSS
SSS
문자 앞에 음의 정수 가 붙을 수도 있습니다. 이 경우 열의 맨 아래 비 공백 문자 -m
가 제거 됩니다 (공백으로 바꾸지 말고 완전히 제거하십시오). 이것을 슬라이스라고합니다. 예를 들어, 입력 은 다음과 같이 출력됩니다.m
-1j-2j-3j-4j-5j-6j-7j-8j
.
..
...
*...
**...
***...
-***...
--***...
+--***..
오프셋과 슬라이스를 같은 줄에 적용 할 수 있지만 오프셋이 먼저 가야합니다. 즉, 문자 앞에 접두사를 붙일 수 있습니다 n-m
. 여기서 n
오프셋 m
의 크기는 슬라이스의 크기입니다. 예를 들어 S
공백을 표기하기 위해 '2-4j'를 입력하면 다음과 같이 출력됩니다.
.
.
.
*
*
*
S
S
마지막으로 +
두 열 사이에 사용 된 연산자는 별도의 열이 아니라 동일한 열에서 서로 위에 쌓여 야한다는 것을 나타냅니다. 예를 들어, 입력`2-4ja '는 다음을 출력합니다 :
.
.
.
*
*
*
S
S+
입력 2-4j+a
출력은 다음과 같습니다.
+
.
.
.
*
*
*
S
S
다음은 샘플 입력입니다.
abiehef+ehfhabc
그리고 결과 출력 :
*
-
. -
. . +. .
* * +* *
* * ****
********
--------
-------- -
+++++++++ ++
+++++++++++++
일종의 오래된 파괴 된 성 탑처럼 보입니다.
다음은 또 다른 샘플 입력입니다.
6b5b+a6b1-2d+3-4f1-2d+-2c+2-4f+1-2d+-2c2-2d+1-4g+1-2c+b+-2c+-4e2-7j+-4g+d+-2c+-4f2-7j+-5h+b+-2c+a+-3f2-7j+-7i+-4e+b+b+a+-4f2-7i+a+-7h+-4f+b+b+a+-4f2-7j+-7h+-4f+a+-7h+a+-7i+-4f2-7j+-7i+-6h+a+-7i+b+-4e3-7i+a+-7h+-4e+a+-7h+b+1-7h3-7j+1-4f+-7h+b+-4f+a3-7j+2-4f+a+-4f+b3-2d+-2d+3-4g+b3-2d+-2d+-2c
그리고 결과 출력 :
****** +++
******+.*++
---++.+ ***
-+-+++..++**
-+--+++.+++*
--++++.+..*
+++++.+**
+++****.****** -
+++*****.**.. --
+ ***....+..--
...+.....--
--.........--
---......
--
(그것은 마리오 였어야했지만 아주 좋지는 않았습니다 ...)
사양이 여전히 명확하지 않으면 Python 2.7로 작성된 골프 이외의 구현 이 있습니다. 사양을 작동시키는 방법에 대한 느낌을 얻기 위해이를 실행하고 실험 할 수 있습니다. 내 프로그래밍 기술을 비웃을 수도 있습니다.
이것은 코드 골프이므로 가장 짧은 엔트리가 승리합니다. 불분명 한 경우 의견에 질문하십시오.
a+a+a+a+a
5 개의 더하기 부호가 서로 위에 출력됩니다.