각 에이전트가 직각/비스듬히 (8 방향으로) 이동할 수있는 타일 기반 게임을 고려하십시오. 이 시점에서2D 그리드 기반 게임 : 수동성 표현
-- Example : 3x3 sized map
local map = {
{0,0,0},
{0,1,1},
{0,0,0},
}
, 우리가 어떻게 나타낼 수 기본적으로,이 같은지도가 0이 걸어 갈 위치와 1 개 unwalkable 위치를 (I 루아를 사용하고 있습니다)를 나타냅니다 것 일반 2D 그리드로 표현 될 수있다 에이전트가 오는 방향에 따라 타일 이동 가능성이 있습니까? 즉, 정적으로 알 수없는 위의 셀 [2] [2]는 [1] [2] (위) 또는 [2] [1] (왼쪽)에서 오는 경우에는 걷기가 가능하지만 예를 들어 [3 ] [2] (아래).
나는 이것을 몇 가지 생각을했지만, 나에게 충분히 깨끗한 것을 생각해 낼 수 없었다.
미리 감사드립니다.
감사 : 그의 AND 연산자 (
&
)와 또한 더 편리 할 수 있습니다 주소 그 진수를주의 16참조를 제외한, 모든 비트를 떠난다. 나는 비트 연산/표현에 익숙하지 않지만 일반적인 생각을 갖습니다. 내가 뭔가를 놓치고 있지만 ... 나는 walkability를 찾지 않고 있었지만 _represent_하는 방법을 찾고있었습니다. 내가 OP에서 쓴 예제를 생각해 보면, 노드 [i] [j]가이 쪽/쪽에서 엔트리 할 수 있다고 지정 할 수 있지만,이 쪽/그 쪽 등에서 엔트리 할 수 없다고 지정하는 방법은 무엇입니까? 똑바로 전진 할 것 같네요. 다시 한 번 고마워, Richard. –
나는 여전히 같은 대답을 줄 것이라고 생각한다. 셀 그리드와 동일한 차원의 2 차원 바이트 격자가 좋은 표현이며, 각 바이트의 각 비트는 셀을 입력 할 수 있는지 여부를 나타냅니다. 내 대답을 편집하여 몇 가지 예를 보여주었습니다. – Richard
아, 죄송합니다. 언뜻 나는 완전한 생각을 얻지 못했습니다. 따라서 일반적인 아이디어는 각 셀이이 셀을 어떤 방향에서 표현할 수 있는지 나타내는 바이트를 보유하는 두 번째 2D 그리드를 오버레이하는 것입니다. Lua 테이블의 유연성 덕분에 추가 그리드가 필요하지 않습니다. 일치하는 셀에 대한 정보가있는 노드의 2D 그리드 내에이 바이트를 팩할 것입니다. 하지만이 문제는 확실히 해결됩니다. Richard에게 감사드립니다! –