내 개가 짖고 있지만 산책하기에는 너무 게으르다. 나는 아이디어가! Code Golf 직원들이 저를 위해 할 수 있도록하겠습니다!
당신의 도전은 강아지의 산책을 시뮬레이션하는 것입니다. 개를 걷는 규칙은 다음과 같습니다.
- 사람 (
H
)은0,0
(직교도) 좌표 평면 에서 시작하여 매초마다 한 칸씩 위, 왼쪽, 오른쪽 또는 아래쪽으로 무작위로 이동합니다. - 개 (
D
)는 같은 위치에서 시작하며 매 초마다 (무작위로) 0, 1, 2 또는 3 칸씩 위, 왼쪽, 오른쪽 또는 아래쪽으로 이동합니다. 개는 예측하기 어렵고 때로는 더 빨리 달리거나 완전히 멈출 것입니다. - 개는 가죽 끈의 길이 인 (유클리드 거리에서) 인간으로부터 일정량 이상 떨어져 있지 않습니다
L
. 예를 들어L
is6
인 경우 유효한 위치는H(0,0) D(4,4)
(거리는 약 5.65 단위이므로)H(0,0) D(5,4)
(약 6.4 단위 이므로 )입니다.- 개가 움직일 때 개가 가죽 끈 거리 요구 사항을 위반하는 경우 거리 요구 사항을 위반하지 않는 결정된 방향으로 최대한 멀리 가야합니다. 예를 들어, 위치가
H(0,0) D(3,4)
있고 개가 무작위로 오른쪽으로 3 칸 이동하기로 결정한 경우 6 칸을D(4,4)
넘지 않고 갈 수있는 가장 먼 거리가됩니다. (이것은 0 칸의 움직임을 초래할 수 있습니다. 즉 전혀 움직임이 없습니다!)
- 개가 움직일 때 개가 가죽 끈 거리 요구 사항을 위반하는 경우 거리 요구 사항을 위반하지 않는 결정된 방향으로 최대한 멀리 가야합니다. 예를 들어, 위치가
- 기타 규칙 : 인간이 먼저 움직입니다. 사람이 움직일 때 가죽 끈 길이를 초과해서는 안됩니다. 그렇다면 다른 방향을 선택해야합니다. "임의의"는 "균등 한 분포와 패턴이 없음"을 의미합니다.
입력은이 형식으로 제공됩니다 (STDIN, 함수 매개 변수, 파일 등).
"<amount of seconds the walk will last> <leash length>"
예를 들면 다음과 같습니다.
300 6 // a 5 minute walk with a 6 yard leash
이 형식으로 출력을 제공해야합니다 (STDOUT, 함수 리턴 값, 파일 등일 수 있음).
H(0,0) D(0,0)
H(0,1) D(2,0)
H(1,1) D(2,1)
H(1,0) D(2,-1)
...
(라인의 양은 출력 것이다 seconds + 1
때문에, H(0,0) D(0,0)
라인에 포함되지 않는다.)
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이길 것입니다!