매번 미로의 구조가 바뀔 때마다 (일부 문은 닫히고 일부 문은 열립니다 .HP4에서 Triwazard와 같은 것) 동적 미로 게임을 작성하고 있습니다. 누구든지이 데이터 구조가 가장 적합 할 것이라고 제안 할 수 있습니까?미로를 나타내는 데이터 구조
답변
미로는 사각형 그리드입니까? 다른 것?
유용한 정보 (패스 또는 객체)가 어느 정도 포함되는지에 따라 다릅니다.
사각형 격자이고 대부분의 격자 사각형에 SOMETHING이 포함되어있는 경우 좋은 데이터 구조는 배열의 각 요소가 1 행을 나타내는 2D 배열 (배열 배열)이고 내부 배열의 각 요소는 1 셀 이 행에는 해당 셀에 속한 데이터가 들어있는 객체 (이웃 셀을 이동할 수 있으며 셀에 포함 된 것, 거기에 문자가 있음)가 있습니다.
그러나 미로가 사각형이 아니거나 큰 미로의 셀 대부분이 실제로 유용하지 않은 경우 (예 : 통과 할 수없는 블록 인 경우) 좋은 데이터 구조는 그래프입니다.
그래프의 모든 꼭지점은 통과 가능한 셀입니다. 가장자리는 이동할 수있는 셀 쌍을 나타냅니다 (일부 문이 단방향 일 경우 방향 그래프로 만들 수 있음). 모든 정점/셀은 해당 셀에 대한 정보가 포함 된 개체입니다 (예 : 물리적 미로에서의 위치, 그리기 등).
array-of-array 구조의 장점은 그리기가 쉽고 처리가 간단하다는 것입니다 (모든 이동은 색인에 있거나 색인 해제 된 것입니다). 벽 추가/제거는 인접한 두 셀의 배열 요소에서 데이터를 변경하는 것만 큼 쉽습니다.
그래프 구조 이점은 미로 통과가 매우 희박한 경우 훨씬 적은 공간을 차지한다는 점입니다 (예 : 필드의 1/100 만 통과). 이것은 랜덤 (예 : 직사각형이 아닌 그리드) 지오메트리를 나타낼 수있는 유일한 구조이며 처리는 매우 간단합니다. 벽에 추가/제거는 그래프에 가장자리를 추가하는 것만 큼 쉽습니다.
- 1. 미로를 통과하는 최단 경로
- 2. 미로를 통과하는 알고리즘
- 3. 데이터 구조
- 4. 데이터 구조 - 카드 표현
- 5. 데이터 구조 문제
- 6. 부모 자식 Perl 데이터 구조
- 7. 동적 데이터 저장을위한 데이터 구조
- 8. 멀티 코어를 사용하여 미로를 해결 하시겠습니까?
- 9. "consumptions"을 추적하는 데이터 구조
- 10. 패킷 데이터 구조?
- 11. soundex 알고리즘의 데이터 구조?
- 12. Java의 분산 데이터 구조
- 13. 주요 JavaScript 데이터 구조
- 14. 힙 데이터 구조
- 15. 직렬 포트 데이터 구조
- 16. 데이터 구조, 텍스트
- 17. C++ 데이터 구조 시각화
- 18. 공간 데이터를위한 데이터 구조
- 19. 아약스에 데이터 구조 보내기
- 20. Python의 데이터 구조
- 21. 데이터 구조 변경 R
- 22. 트리 데이터 구조
- 23. iPhone : 데이터 구조 선택
- 24. 높은 수준의 데이터 구조
- 25. 다차원 데이터 구조
- 26. 사용할 데이터 구조
- 27. HSQLDB의 트리 구조 데이터
- 28. iPhone Tree 데이터 구조
- 29. 데이터 구조 제안!
- 30. 동시 데이터 구조 테스트
1) 귀하는 어떤 데이터 구조를 고려 했습니까? 2) 사람들이 당신이하는 모든 작은 약어를 알지 못한다고 가정하지 마십시오. HP4는 Harry Potter 시리즈의 4 번째 책의 약어로 잘 알려져 있지 않습니다. – DVK