기술
이 과제의 과제는 공간 에서 주어진 물체를 추적하는 프로그램 또는 기능을 고안하는 것 입니다.
I / O
귀하의 프로그램에는 3 가지 입력이 주어지며, 이는 합리적인 방법 으로 취할 수 있습니다 :
n
평면의 크기가됩니다. 따라서 경우 평면은 입니다. 항상 홀수 정수 라고 가정 할 수 있습니다 .n
s
좌표 쌍으로 제공된 객체의 시작 위치가 됩니다.
D
순서 쌍으로 구성된 벡터가됩니다. D
포맷 따를 , 여기서 항상 것 하나 의 기수 일차 intercardinal 방향에 대한, 그리고 것 '틱'수에 대한 정수t k'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
이러한 입력이 주어지면 프로그램은 평면에서 객체의 추적을 출력해야합니다.
규칙
출력 에는 평면의 경계 가 포함 되어야 합니다. 예 :
-21012 + + ┌─────┐ 2│ │ 1│ │ 0│ │ 1│ │ 2│ │ -└─────┘
빈 평면 의 예입니다 . 위와 옆의 숫자는 참조 용일 뿐이며 인쇄 할 필요는 없습니다.
공백이 아니거나 공백으로 렌더링되는 한 경계에 어떤 문자를 사용할 수 있습니다. 선택한 문자는 전체 평면을 나타냅니다. 즉, 문자 사이에 간격이 없어야합니다.
허용되는 비행기는 다음과 같습니다. ┌──┐ .... ---- +-+ │ │. . | | | | │ │. . | | | | └──┘; ....; ----; +-+ 허용되지 않는 비행기는 다음과 같습니다. .... .... ++++. . . . + +. . . + +. . ; ....; ....; + +; . .
추적 할 객체는 평면에서 1 개의 공간 만 차지하고 경계 문자와 다른 한 선택한 문자가 될 수 있습니다.
추적 된 객체의 추적은 평면에서 1 개의 공간 만 차지하고 객체와 다른 한 선택한 문자가 될 수 있습니다.
각 요소 에 대해 객체는 공간을 쪽으로 이동 하고 추적을 남겨야합니다.
객체가 경계에 부딪히면 반영됩니다. 개체가 여전히 왼쪽으로 움직이면 반영된 방향으로 계속 움직입니다.
참고로 이러한 방향은 서로 반영됩니다.
→ 상단 또는 하단 경계가 충족 될 때;
경계 → 측면 경계에 했을 때;
최종 출력에는 가능한 가장 새로운 트레이스가 포함됩니다. 즉, 이미 트레이스가있는 공간에 객체가 트레이스를 남기면 새로운 트레이스 문자가 더 오래된 트레이스를 덮어 씁니다.
일반적으로 표준 허점은 기본적으로 금지되어 있습니다.
채점 :
이것은 코드 골프 도전입니다.
예 :
입력 : , ,
그것을 해결 :
0 ┌─────┐ │ │ │ │ 0│ ○ │ │ │ │ │ └─────┘
0 ┌─────┐ │ ○ │ │ \ │ 0│ \ │ │ │ │ │ └─────┘
0 ┌─────┐ │∧ │ │ | \ │ 0│ ○ \ │ │ │ │ │ └─────┘
이며 출력이됩니다.
0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
(0은 단지 참조 용이며 최종 출력에있을 필요는 없습니다.)
입력 : , ,
공지 사항 :
0 ┌─────────┐ │ │ │ │ │ │ │ ∧ │ 0│ / | │ │ ○ / | │ │⟨ / │ │ \ / │ │ ∨ │ └─────────┘
물체가 반사되어 회 일단 도달 할 때 바닥 향해 진행하는 평면 는에 반영 ; 다시 한번 도달 할 때 좌측 면의 로 반영 .
최종 출력은 .
0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
테스트 사례 :
산출:
0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
입력 : , ,
산출:
0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
입력 : , ,
산출:
0 ┌───┐ │ | │ 0│- ○ ┐│ │ | │ └───┘
입력 : , ,
산출:
0 ┌───────────┐ │ ∧ │ │ / \ │ │┌-/-\ \ │ │ \ | / \ \ │ │ \ | \ │ 0│ | / ⟩│ │ | \ / / │ │ | / ○ │ │ | / \ │ │ ∨ \ │ │ \ │ └───────────┘
'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
a는 0 색인 정수 대신 (또는 1 인덱스)로? 그래서 [('NW',2),('S',2),('E',1)]
이된다 [[7,2],[4,2],[2,1]]
예를 들어.