2014-11-30 4 views
-1

로봇이 벽에 충돌하지 않고 대상을 찾는 로봇 미로를 만들고 있습니다.ArrayList가 채워지지 않습니다.

내 코드는 잘하지만 컴파일 :

  • deadends에서 로봇은 벽에 많은 충돌 이후가 직면하고있어 방향으로 발전하려고 보인다.
  • corridors에서 ArrayList은 비어 있으며 나는 이유를 모른다.

어떤 도움에 감사드립니다 :)

+1

당신이'corridor'를 호출하면, 여러분은 내가 말할 수있는 한 'passageExits'를 호출하지 않았습니다. 그래서 그 것을 설명합니다 ... –

+0

또한, 여러분의'passageExits'와'nonWallExits' 메소드 모두에서, re * unconditionally * 목록에 길 찾기를 추가합니다. 카운터 증분 만'if' 문에 포함됩니다. 본문 주위에 중괄호가 필요합니다. if (condition) {statement1; statement2; }' –

+0

deadend 및 복도 메소드를 호출하기 전에 두 개의 arraylists를 채우기 위해 passageExists 및 noWallExists 메소드를 호출해야합니다. – Prateek

답변

1

귀하의 passageExists 방법은 정수로 존재 구절의 수를 반환합니다. 그러므로 먼저 존재하는 대다수가> 1인지 확인해야합니다. 그러면 arrayList에서 무언가를 얻습니다. 말을하는 것입니다

, 당신 때문에 이런 식으로 뭔가 :

if(passageExists(robot) > 0) 
    passageDirections.get(0); 

와 같은 벽의 경우.

+0

하지만 return 문이 필요합니까? – codeav3

+0

예, 복도 함수에서 if (passageExists (robot)> 0)가 passageDirections.get (0)을 반환한다고 말합니다. 이 같은. 사실 나는이 두 arraylists를 글로벌하게 만들지 말 것을 권합니다. – Prateek

+0

원래 그들은 글로벌하지 않았습니다. 그들은 해당 방법에있었습니다. 예 : 'passageDirections''ArrayList'는'passageExits' 메소드에있었습니다. 그러나, 컴파일되지 않았습니다 :(. 나는 다음을 수행했습니다 :'if (passageExits (robot) == 1) return passageDirections.get (0);'그러나 컴파일 할 때'return' 문이 없다고합니다. : – codeav3

관련 문제