면책 조항 :이 질문에서 들었던 이야기는 전적으로 허구이며 소개를 제공하기위한 목적으로 만 고안되었습니다.
나는 사악한 농부이며, 내 지역에서 밀의 가격을 높이기 위해 내 주변의 모든 농부들의 들판을 태우기로 결정했습니다. 나는 들판이 화염에 올라가는 것을 정말로보고 싶습니다 (그래서 나는 악한 웃음을 사용하고 기쁨과 함께 내 손을 문지르는 것이 가능합니다). 나를 위해 소각했다.
당신의 작업 :
필드를 입력으로 받아 전체 필드가 재가 될 때까지 레코딩 단계를 반환하는 프로그램 또는 함수를 작성하십시오. 화재가 발생한 필드의 특정 부분은 불꽃의 강도를 나타내는 정수로 표시됩니다. 화재는 "1"에서 시작하여 "2"로 이동 한 다음 "3"으로 이동합니다. 불이 "4"에 도달하면, 불에 가연성 인 인접한 (직사각형이 아닌) 인접한 지역을 잡습니다. "8"에 도달하면 다음 반복에서 소각되고 "A"로 표시되는 재로 바뀝니다. 영역이 아직 불에 닿지 않은 경우 "0"으로 표시됩니다. 예를 들어 필드가 다음과 같은 경우
100
000
프로그램은 이것을 출력해야합니다 :
100
000
200
000
300
000
410
100
520
200
630
300
741
410
852
520
A63
630
A74
741
A85
852
AA6
A63
AA7
A74
AA8
A85
AAA
AA6
AAA
AA7
AAA
AA8
AAA
AAA
원하는 경우 위의 기호를 일관되고 서로 구별되는 한 선택한 기호 세트로 바꿀 수 있습니다.
입력:
위와 같이 줄 바꿈 된 문자열과 같은 표준 형식의 필드 시작 위치입니다.
산출:
배열로 또는 일부 문자로 구분 된 문자열로 구울 때마다 모든 반복의 필드입니다.
테스트 사례 :
0301
000A
555
|
v
0301
000A
555
1412
010A
666
2523
020A
777
3634
030A
888
4745
141A
AAA
5856
252A
AAA
6A67
363A
AAA
7A78
474A
AAA
8A8A
585A
AAA
AAAA
6A6A
AAA
AAAA
7A7A
AAA
AAAA
8A8A
AAA
AAAA
AAAA
AAA
채점 :
이것은 code-golf 이며 바이트 단위로 가장 낮은 점수를 얻습니다!