작성
·
421
0
enum Dir
{
Up = 0, // 3
Left = 1, // 0
Down = 2, // 1
Right = 3,// 2
}
// 현재 바라보고 있는 방향을 기준으로, 좌표 변화를 나타낸다.
int[] frontY = new int[] { -1 , 0, 1, 0};
int[] frontX = new int[] { 0, -1, 0, 1 };
int[] rightX = new int[] { 1, 0, -1, 0};
int[] rightY = new int[] { 0, -1, 0, 1 };
frontY, frontX의 기준은 이해하였으나 , rightX와 rightY의 값들이 위와 같이 나뉘어진 이유를 알고 싶습니다.
답변 3
1
저도 이부분에서 막혔었는데 3 by 3 grid를 종이에 그려보고 플레이어를 (1,1) 가운데에 배치하고 보시면 됩니다.
플레이어는 오른쪽 벽부터 짚는 것을 확인하기 때문에 이에 대해 방향에 따른 오른쪽 좌표를 배열로 표현한 것이고
UP[y : 0, x : +1] / LEFT[y : -1, x : 0]
DOWN[y : 0, x : -1] / RIGHT[y : 1, x: 0]
그래서 rightY = {0, -1, 0, 1} / rightX = {1, 0, -1, 0}가 됩니다.
0
저도 무슨 말인지 이해가 되지 않아서 한참동안 생각했는데, 우측방향에서 X축 이동, Y축 이동을 의미하는 거였네요.
가령, 우측방향 입장에서는 X축에서 오른쪽으로 이동하는 건 위로 가는 것이니 1이 됩니다.
0