데일리 챌린지 #288 - 메이즈 러너

2299 단어 challenge
환영합니다, 모험가님. 당신의 목표는 미로를 탐색하고 벽을 건드리지 않고 결승점에 도달하는 것입니다. 그렇게 하면 즉시 당신을 죽일 것입니다!

미로의 2D 배열과 방향 배열이 제공됩니다. 당신의 임무는 주어진 지시를 따르는 것입니다. 모든 움직임이 끝나기 전에 끝점에 도달하면 Finish를 반환해야 합니다. 벽에 부딪히거나 미로 경계 밖으로 나가면 Dead를 반환해야 합니다. 모든 동작을 사용한 후에도 여전히 미로에 있으면 Lost를 반환해야 합니다.

미로 배열은 다음과 같습니다.

maze = [[1,1,1,1,1,1,1],
        [1,0,0,0,0,0,3],
        [1,0,1,0,1,0,1],
        [0,0,1,0,0,0,1],
        [1,0,1,0,1,0,1],
        [1,0,0,0,0,0,1],
        [1,2,1,0,1,0,1]]

..다음 키 사용

      0 = Safe place to walk
      1 = Wall
      2 = Start Point
      3 = Finish Point

위의 예에서 direction = ["N","N","N","N","N","E","E","E","E","E"]는 당신을 끝까지 데려다 줄 것입니다!

규칙


  • Maze 배열은 항상 정사각형, 즉 N x N이지만 크기와 내용은 테스트마다 변경됩니다.
  • 최종 테스트를 위해 시작 및 종료 위치가 변경됩니다.
  • 방향 배열은 항상 대문자이며 N = 북쪽, E = 동쪽, W = 서쪽 및 S = 남쪽 형식입니다.
  • 모든 이동이 끝나기 전에 끝점에 도달하면 Finish를 반환해야 합니다.
  • 벽에 부딪히거나 미로 경계를 벗어나면 Dead를 반환해야 합니다.
  • 모든 동작을 사용한 후에도 여전히 미로에 있는 자신을 발견하면 Lost를 반환해야 합니다.
    행운을 빕니다. 안전을 유지하십시오!

  • 테스트



    미로:

    var maze = [[1,1,1,1,1,1,1],
                [1,0,0,0,0,0,3],
                [1,0,1,0,1,0,1],
                [0,0,1,0,0,0,1],
                [1,0,1,0,1,0,1],
                [1,0,0,0,0,0,1],
                [1,2,1,0,1,0,1]];
    

    테스트["N","N","N","N","N","E","E","E","E","E"]["N","N","N","W","W"]["N","E","E","E","E"]
    행운을 빕니다!


    이것은 challenge CodeWars의 adrian.eyre에서 가져온 것입니다. CodeWars에 따라 이 챌린지의 재배포를 허가한 2-Clause BSD License에게 감사합니다!

    미래 게시물에 대한 도전 아이디어를 제안하고 싶으십니까? 제안 사항을 이메일로 보내주세요!

    좋은 웹페이지 즐겨찾기