You are here

LabVIEW 라이브러리

행렬집합-미로해결하기 (Queue Stack-Solve Maze)

예제 설명

 

본 VI는 블록의 행렬로 표현된 미로의 상위 왼쪽 코너에서부터 하위 오른쪽 코너까지의 미로에대한 경로를 찾아서 해결하는 VI입니다.

다운로드 안내

LabVIEW > 예제 찾기 > 어플리케이션 최적화 > 일반 >> Queue Stack - Solve Maze.vi

파일 다운로드 하기

직접 다운로드 예제는 LabVIEW 8.5 (한글판) 이상의 버전에서 열립니다. 이전 버전의 사용자 분들은 상단에 표기된 예제 찾기를 이용하시면 LabVIEW에서 실행하실수 있습니다. (단, LabVIEW 8.5 이상에서 추가된 새로운 기능은 LabVIEW 평가판 다운로드를 통해 확인) 

 

프런트패널

 

실행방법

1. VI를 실행합니다.
2. 미로의 상위 왼쪽 코너에서부터 하위 오른쪽 코너의 분홍색 블록까지의 경로를 찾아가는 미로를 볼수 있습니다. 검은색 블록이 막힌 통로로 표현됩니다.

 

블록다이어그램

 

1. 행렬의 줄과 열은 (0,0)에서부터 시작됩니다. 미로를 찾아가는 방향 설정은 동서남북과 길을 잃게 되는 "Lost"로 설정합니다. 큐 함수를 사용하여 큐 함수에 들어오는 클러스터의 모든 데이터를 한꺼번에 처리합니다. 경로에 사용된 블록들은 색깔이 변화되고, 잘못된 경로를 찾았을 경우, 새로운 길을 찾아 돌아가고, 잘못된 경로는 경로의 색깔이 변합니다.

2. While loop의 반복에서, 우리의 현재 위치에서 나아가야 할 방향은 정해져 있지 않은 상태입니다. 우리가 막다른 방향으로 진행했거나 아니면 올바른 방향으로 진행했거나 블록 위에 색깔이 더해집니다. 만약 막다른 길로 접어들었다면, 다시 새로운 길을 찾습니다.

3. 최종 목적지를 찾으면, 찾은 경로를 처음 시작했던 경로에서부터 마지막 도착된 경로까지 결과를 보여줍니다.

A) 미로에서 현재 위치에 대한 정보를 보내줄 수 있는 새로운 큐 함수를 만듭니다.
B) 지금 있는 블록이 끝인지를 검사하고 미로에 색깔을 입힙니다.
C) 지금 있는 위치가 끝이 아니면, 새로운 방향을 찾고. 만약 줄의 인덱스에 -1이 호출되면 막다른 블록에 위치됨을 의미합니다.
D) 막다른 블록에 위치됨을 인지하면 큐 함수로부터 아이템을 제거합니다. 만약 시간 초과가 된다면, 미로에 더 이상 생성할 수 있는 길이 없음을 의미합니다.
E) 행렬에서 다음 위치가 더해지면서 앞으로 나아가고, 다음 루프의 반복을 진행합니다.
F) 미로의 끝을 찾으면, 빠르게 경로를 찾습니다.
G) 찾은 경로의 시작 블록과 마지막 블록 사이의 찾은 경로를 그려줍니다.