도전
15/16 시즌 동안 첫 눈이 내리는 많은 곳에서 겨울이 빠르게 다가오고 있습니다. 그래서 스노우 머신을 분해하고 눈을 직접 코딩하지 않겠습니까?
nSTDIN을 통해 정수가 주어지면 ASCII 표현 Beta의 눈송이 (아래 설명 참조)를 level로 출력하십시오 n.
베타의 눈송이
눈송이는 단일 x로 레벨 0에서 시작합니다.
x
그런 다음 각 모서리에 다음 모양 중 하나를 추가하십시오.
x
xx
위 모양을 오른쪽 상단에 추가합니다. 오른쪽 아래 모서리의 경우 시계 방향으로 90 °, 왼쪽 아래, 시계 방향으로 180 °, 왼쪽 위, 시계 방향으로 270 ° 회전합니다.
그렇게하면 다음과 같은 모양이됩니다.
x x
xx xx
x
xx xx
x x
도형의 방향에 유의하십시오. 계속해서 위에서 설명한 방향 규칙을 사용하여 각 모서리에 더 많은 모양을 다이어그램에 추가하여 레벨 2를 얻습니다.
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
셰이프는 x둘 이상의 노출 된면 (위 모서리라고 함)이있는에 추가됩니다.
L 자형은 n1보다 큰 값에 대해 겹치거나 겹칠 수 있습니다 . 예를 들면 다음과 같습니다.
레벨 0이 다음과 같은 경우 :
x x
그런 다음 레벨 1에 겹침이 있어야합니다 (로 표시되고 출력에 o포함하지 마십시오 o).
x o x
xxxoxxx
x x
xxxoxxx
x o x
당신의 임무는 베타 눈송이의 ASCII 표현을 출력하는 것입니다.
보너스
가장 짧은 프로그램의 경우 50 개의 보너스 보너스가 있으며, n음수 인 경우 눈송이 (레벨 n*-1)를 이미지로 또는 화면에 그래픽으로 출력합니다.
현상금 및 주요 작업에 대한 별도의 프로그램이있을 수 있습니다.
승리
바이트 단위의 최단 프로그램이 이깁니다.
2 or more exposed sides규칙 을 명확히 할 수 있습니까 ? 센터 가정되는 0,0다음 1,1, 1,-1, -1,-1, -1,1모든 2 개 노출 측면 (측면이 다른 4 점 향)이있다. 충전을 피하기 위해 3 + 개 방면이 아니어야합니까? 또는 0 또는 1 개의 이웃 (추기경)이있는 경우에만 확장됩니다.