그래서이 미로 게임을 만들어야합니다. "미로"에서 남쪽으로 이동하는 것 외에는 모든 것이 잘 작동합니다. 그래서 나는 플레이어가 가고 싶은 곳을 스캔하고 그것을 기반으로 배열에서 플레이어 "P"의 위치를 편집합니다. 이것은 북쪽, 동쪽 또는 서쪽으로가는 것이지만 남쪽으로가는 것은 문제가 없습니다.배열을 사용하여 한 방향으로 만 자바 미로 게임 오류가 발생했습니다.
코드의 배경 : 11 * 11 배열이 있고 요소 중 하나에 P와 같습니다. 사용자 입력에 따라이 P는 북쪽 또는 남쪽 또는 동쪽 또는 서쪽으로 가며 벽이없는 경우 제공됩니다 (---로 표시됨).
for (int i = 0; i < currentPos.length; i++) {
for (int j = 0; j < currentPos[0].length; j++) {
if (currentPos[i][j].equals("P")) {
if (direction.equals("north")) {
if (currentPos[i - 1][j].equals("---")) {
continue;
} else {
currentPos[i][j] = " ";
currentPos[i - 2][j] = "P";
break;
}
}
if (direction.equals("south")) {
if (currentPos[i + 1][j].equals("---")) {
continue;
} else {
currentPos[i][j] = " ";
currentPos[i + 2][j] = "P";
break;
}
}
}
}
}
임포트 부분은 [I-2] [J] 또는 [I + 2] [J] 파트 I 짐작 될 것이다. 나는 여기에 두 방향 만 놓았지만 다른 두 방향은 [i] [j-2]와 [i] [j + 2]로 잘 작동합니다.
[i-1] [j] .equals ("---")) {) 벽을 검사하기 전에 남쪽은 항상 경계를 벗어난 오류를 나타냅니다. 이제 벽을 조사 할 때 벽에 부딪 힐 때까지 남쪽으로갑니다.
감사합니다. 매력처럼 일했다. 설명 주셔서 감사합니다. 정말 유용했습니다! – Joris