입력:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
산출:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
입력:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
산출:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
사양:
- 입력해야합니다
- 왼쪽 위 또는 오른쪽 위에서 빛이 들어오는 지 나타내는 플래그입니다. 이 될 수있다
1
거나2
,-1
또는1
,0
또는65536
, 또는 무엇이든은 한 두 플래그 정수 한, 당신을 위해 편리합니다. - 문자 길이가 모두 같은
X
또는 로 구성된 행(즉,로 채워짐
)
- 모든
X
s는 마지막 행에 있거나 그X
아래에 있습니다 (부동 건물이 없음을 의미)
- 모든
- 왼쪽 위 또는 오른쪽 위에서 빛이 들어오는 지 나타내는 플래그입니다. 이 될 수있다
- 그림자가 추가 된 행 (건물)을 출력해야합니다. 이것은 다음 절차로 수행됩니다.
- 왼쪽 상단에서 빛이 들어오는 경우
.
오른쪽 가장자리를지나 한 공간에서 시작하여 오른쪽으로 이동하면서 건물 높이와 높이와 너비가 같은 s의 삼각형을 그립니다 . - 그렇지 않으면 오른쪽 상단에있는 경우 동일한 작업을 수행하지만 왼쪽 가장자리를지나 왼쪽을 가리키는 한 공간에서 시작하십시오.
X
s를 s로 변경하여 변경하지 마십시오.
. 그대로 두십시오.- 그림자를위한 "공간"이 항상있을 것입니다. 즉, 끝에 3 칸 높이의 건물이 있다면 그 뒤에 3 칸 이상이 채워질 것입니다.
- 왼쪽 상단에서 빛이 들어오는 경우
- 이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이길 것입니다!
@Jan 예, 가능합니다. 당신은 사용할 수
—
Doorknob
potato
및 while(1){}
. 질문에 인용 된 바와 같이, "편리한 것이 무엇이든."
: ((. NET-flavoured) 정규식 에서이 문제를 해결하려고했지만 해결할
—
Martin Ender
Regex.Replace
수없는 버그를 발견했다고 생각 합니다 ... 지금 두 가지 문제가 있습니까?
@Doorknob 누군가가이 규칙을 남용하여 전체 코드를 입력에 넣습니다.
—
ɐɔıʇǝɥʇuʎs
@Synthetica "표준 허점"중 하나입니다.
—
Doorknob
{}
및{-1*}
플래그 값으로?