로봇이 벽에 충돌하지 않고 대상을 찾는 로봇 미로를 만들고 있습니다.ArrayList가 채워지지 않습니다.
내 코드는 잘하지만 컴파일 :
- 는
deadends
에서 로봇은 벽에 많은 충돌 이후가 직면하고있어 방향으로 발전하려고 보인다. corridors
에서ArrayList
은 비어 있으며 나는 이유를 모른다.
어떤 도움에 감사드립니다 :)
로봇이 벽에 충돌하지 않고 대상을 찾는 로봇 미로를 만들고 있습니다.ArrayList가 채워지지 않습니다.
내 코드는 잘하지만 컴파일 :
deadends
에서 로봇은 벽에 많은 충돌 이후가 직면하고있어 방향으로 발전하려고 보인다.corridors
에서 ArrayList
은 비어 있으며 나는 이유를 모른다.어떤 도움에 감사드립니다 :)
귀하의 passageExists 방법은 정수로 존재 구절의 수를 반환합니다. 그러므로 먼저 존재하는 대다수가> 1인지 확인해야합니다. 그러면 arrayList에서 무언가를 얻습니다. 말을하는 것입니다
, 당신 때문에 이런 식으로 뭔가 :
if(passageExists(robot) > 0)
passageDirections.get(0);
와 같은 벽의 경우.
하지만 return 문이 필요합니까? – codeav3
예, 복도 함수에서 if (passageExists (robot)> 0)가 passageDirections.get (0)을 반환한다고 말합니다. 이 같은. 사실 나는이 두 arraylists를 글로벌하게 만들지 말 것을 권합니다. – Prateek
원래 그들은 글로벌하지 않았습니다. 그들은 해당 방법에있었습니다. 예 : 'passageDirections''ArrayList'는'passageExits' 메소드에있었습니다. 그러나, 컴파일되지 않았습니다 :(. 나는 다음을 수행했습니다 :'if (passageExits (robot) == 1) return passageDirections.get (0);'그러나 컴파일 할 때'return' 문이 없다고합니다. : – codeav3
당신이'corridor'를 호출하면, 여러분은 내가 말할 수있는 한 'passageExits'를 호출하지 않았습니다. 그래서 그 것을 설명합니다 ... –
또한, 여러분의'passageExits'와'nonWallExits' 메소드 모두에서, re * unconditionally * 목록에 길 찾기를 추가합니다. 카운터 증분 만'if' 문에 포함됩니다. 본문 주위에 중괄호가 필요합니다. if (condition) {statement1; statement2; }' –
deadend 및 복도 메소드를 호출하기 전에 두 개의 arraylists를 채우기 위해 passageExists 및 noWallExists 메소드를 호출해야합니다. – Prateek