소개
소행성을 성공적으로 탐색 할 수있는 가능성은 약 3,720에서 1이라는 것을 누구나 알고 있습니다.
당신의 인공적인 삶을 두려워해서, 당신은 우주선의 독특한 방언 ( 선호하는 코드 골프 언어를 읽으십시오 )에서 소행성 회피 ASCII 미로를 가져갈 길을 결정하는 소행성 회피 프로그램 을 코딩하기로 결정합니다 .
입력
Millenium Falcon에는 다음과 유사한 데이터를 제공하는 소행성 필드 매핑 프로그램이 있습니다.
| ##### ######### |
| ###### # ### # |
| # # # # #### # |
@ ## ####
|# # # ### ## |
|## ## #### # # |
|#### ##### # ## |
상단 행은 팔콘 왼쪽, 하단 행은 팔콘 오른쪽, 열은 선박 앞에있는 것을 나타냅니다.
- 각각
#
은 장애물입니다. - 각 공간은 배가 날 수있는 빈 공간입니다.
- 입력은 항상 7 자입니다. 소행성 매핑 너비 제한입니다.
- 입력 길이는 항상 32 자입니다 (필드 자체는 30 자, 시작 및 끝 한계는 2 자). 이것이 소행성 매핑 깊이 한계입니다. 세로 막대
|
는 매핑의 시작과 끝을 표시합니다. @
팔콘입니다. 항상 입력의 가운데 행 (4 번째 행)과 첫 번째 열에 있습니다.- 마지막 열의 세로 막대에 남은 공간은 선박이 도착해야하는 곳입니다. 항상 입력의 가운데 행 (4 번째 행)과 마지막 열에 있습니다.
입력은 여러 줄 문자열, 문자열 배열, STDIN 또는 함수 매개 변수에서 가져 오거나 파일에서 읽을 수 있습니다.
가능한 기동
당신은 TIE-Fighters에 의해 추구되므로 항상 앞으로 나아가 야합니다. 따라서 선박이 각 단계에서 3 가지 방법으로 비행 할 수 있습니다.
-
앞으로/
앞으로 좌회전\
앞으로 우회전
예를 들어, 다음은 유효한 경로입니다.
@---
--
/ \ /
@ -
-
/ \
/ \
@ \
보시다시피, 열당 항상 정확히 하나의 이동이 있습니다. 팔콘은 쓰레기의 한 조각이므로 격렬한 회전을 할 수 없습니다. 같은 어떤 수단 이동 /\
이상이 \/
되는 허용 . -
두 개의 반대 턴 사이에 최소한 하나의 순방향 전진이 있어야합니다 . 한편, 상기 한 바와 같이, 여러 단계를 위해 한 방향으로 돌리는 것이 가능하다.
한 번의 이동으로 선박이 장애물이있는 지점에있게되면 팔콘이 추락합니다. 예를 들어 다음과 같은 동작으로 인해 충돌이 발생합니다.
@-#
@
\
#
#
/
@
이것은 충돌이 아닙니다.
@-#
\
-
산출
끝까지의 유효한 경로와 동일한 소행성 필드 ASCII를 출력해야합니다. 팔콘은 시작 지점 대신 끝 지점에 인쇄되어야합니다.
예를 들어, 이전에 제공된 입력 예제의 유효한 출력은 다음과 같습니다.
| ##### ######### |
| ###### #-------- ### # |
| # # #/ # ####\ # |
--------- ## \ #### ----@
|# # # ### \ ## / |
|## ## #### \ #/ # |
|#### ##### #-- ## |
당신의 경로는 팔콘을 추락하지 않아도됩니다. 가능한 최단 경로 일 필요는 없습니다.
끝까지 가능한 경로가 항상 하나 이상 있다고 가정 할 수 있습니다.
소행성 필드가이 포스트에서와 같이 정확하게 인쇄되는 한 파일 또는 이와 동등한 형식으로 STDOUT으로 출력 할 수 있습니다 (예 : 경로의 좌표리스트 출력이 유효하지 않음).
테스트 사례
정상적인 소행성 분야
| ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## |
가능한 출력
| ##### ######### | | ###### #-------- ### # | | # # #/ # ####\ # | --------- ## \ #### ----@ |# # # ### \ ## / | |## ## #### \ #/ # | |#### ##### #-- ## |
초 정기 소행성 분야
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | @ # # # # # # # # # # # # # # |# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # |
가능한 출력
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | -# #-# #-# #-# #-# #-# #-# #--@ |#\#/#\#/#\#/#\#/#\#/#\#/#\#/# | | #-# #-# #-# #-# #-# #-# #-# #| |# # # # # # # # # # # # # # # |
죽음의 별의 핵심
| # # # # | | # # # | | # # # # # | @ # # # # # | # # # # | | # # # # # | | # # # # |
가능한 출력
| # # # -- # | | --- # # / #\ - | | / #\ # # / # \ /#\ | - # \ # #/ # - # ----@ | # \ # ---- # # | | # \#/ # # # | | # - # # # |
데스 스타 트렌치
|##############################| |##############################| |##############################| @ |##############################| |##############################| |##############################|
산출
|##############################| |##############################| |##############################| ------------------------------@ |##############################| |##############################| |##############################|
소행성 동굴
|### ##########################| |## # ############### ## ######| |# ### ######## ### ## # #####| @ ###### ###### ### ## ### |######## ### ### ## #########| |########## # ### ## ##########| |########### #####|
가능한 출력
|###-##########################| |##/#\############### ##-######| |#/###--######## ### ##/#\#####| -######\###### ### ##/###-----@ |########--### ### ##/#########| |##########\# ### ##/##########| |###########-------- #####|
채점
R2D2는 늪지에서 수영을하기 때문에 바쁘기 때문에 팔콘 컨트롤러를 직접 프로그래밍해야합니다. 따라서 가장 짧은 코드가 승리 합니다.
-
매 턴마다 "앞으로"움직이는 것으로 정의되어 있습니다. 그러나 실제 움직임은 항상 대각선 왼쪽 두 개와 대각선 오른쪽 두 개입니다.