a* impl
This commit is contained in:
parent
a4c1164962
commit
5a10d66131
@ -96,7 +96,6 @@ class Game:
|
|||||||
|
|
||||||
def findBomb(self):
|
def findBomb(self):
|
||||||
# return BfsPathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
# return BfsPathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
||||||
point = self.board.bombMap.popitem()
|
|
||||||
return PathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
return PathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,21 +23,22 @@ class PathFinder(BfsPathFinder):
|
|||||||
cameFrom = dict()
|
cameFrom = dict()
|
||||||
cameFrom[x] = None
|
cameFrom[x] = None
|
||||||
|
|
||||||
while not self.openList:
|
while self.openList:
|
||||||
current = self.minKey(self.fScore, self.openList)
|
current = self.minKey(self.fScore, self.openList)
|
||||||
|
|
||||||
if self.checkGoal(current):
|
if self.checkGoal(current):
|
||||||
return self.constructActions(current, startState)
|
return self.constructActions(current, startState)
|
||||||
|
self.openList.remove(current)
|
||||||
for next in self.getNeighbour(current):
|
for next in self.getNeighbour(current):
|
||||||
tentativeGScore = self.gScore.get(self.current) + current.state.getPoint().distance(next.state.getPoint())
|
tentativeGScore = self.gScore.get(current) + current.state.getPoint().distance(next.state.getPoint())
|
||||||
if tentativeGScore < self.gScore.get(next, 10000):
|
if tentativeGScore < self.gScore.get(next, 10000):
|
||||||
cameFrom[next] = current
|
self.cameFrom[next] = current
|
||||||
next.parent = current
|
next.parent = current
|
||||||
self.gScore[next] = tentativeGScore
|
self.gScore[next] = tentativeGScore
|
||||||
self.fScore[next] = next.state.getPoint().distance(startState.getPoint())
|
self.fScore[next] = next.state.getPoint().distance(startState.getPoint())
|
||||||
if next not in self.openList:
|
if next not in self.openList:
|
||||||
self.openList.append(next)
|
self.openList.append(next)
|
||||||
|
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user