manchattan
This commit is contained in:
parent
a376cd63c4
commit
5af2f22a64
@ -78,7 +78,7 @@ class BFS:
|
||||
if current_position[2] == 180: # jesli patrzy na polnoc
|
||||
if neighbours_list[0][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[0][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[0][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[0][1] == 'mine':
|
||||
@ -87,7 +87,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[1][0] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][0] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][0] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][0] == 'mine':
|
||||
@ -96,7 +96,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[1][2] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][2] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][2] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][2] == 'mine':
|
||||
@ -107,7 +107,7 @@ class BFS:
|
||||
if current_position[2] == 90: # jesli patrzy na wschod
|
||||
if neighbours_list[1][2] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][2] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][2] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][2] == 'mine':
|
||||
@ -116,7 +116,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[0][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[0][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[0][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[0][1] == 'mine':
|
||||
@ -125,7 +125,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[2][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[2][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[2][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[2][1] == 'mine':
|
||||
@ -136,7 +136,7 @@ class BFS:
|
||||
if current_position[2] == 0: # jesli patczy na poludzie
|
||||
if neighbours_list[2][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[2][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[2][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[2][1] == 'mine':
|
||||
@ -145,7 +145,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[1][2] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][2] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][2] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][2] == 'mine':
|
||||
@ -154,7 +154,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[1][0] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][0] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][0] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][0] == 'mine':
|
||||
@ -165,7 +165,7 @@ class BFS:
|
||||
if current_position[2] == 270: # jesli patczy na wschod
|
||||
if neighbours_list[1][0] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[1][0] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[1][0] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[1][0] == 'mine':
|
||||
@ -174,7 +174,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[2][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[2][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[2][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[2][1] == 'mine':
|
||||
@ -183,7 +183,7 @@ class BFS:
|
||||
new_nodes.append(tmp)
|
||||
if neighbours_list[0][1] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
|
||||
if neighbours_list[0][1] == 'grass':
|
||||
cost = 2
|
||||
cost = 5
|
||||
elif neighbours_list[0][1] == 'sand':
|
||||
cost = 1
|
||||
elif neighbours_list[0][1] == 'mine':
|
||||
@ -203,8 +203,9 @@ class BFS:
|
||||
|
||||
def graphsearch(self, fringe, explored, succ, goaltest):
|
||||
|
||||
# def manhattan(state, target_state):
|
||||
# return abs(state.get_x() - target_state.get_x()) + abs(state.get_y() - target_state.get_y())
|
||||
def manhattan(state, target_state):
|
||||
return abs(state[0] - target_state[0]) + abs(state[1] - target_state[1])
|
||||
|
||||
self.window.pause(True)
|
||||
|
||||
positiont_at_beginning = [self.agent.position_x, self.agent.position_y, self.agent.rotation_degrees] # x, y, gdzie_patczy
|
||||
@ -247,7 +248,7 @@ class BFS:
|
||||
|
||||
|
||||
neighbours_list_of_our_node = self.successor(tmp_node_position) # lista możliwych akcij
|
||||
print(neighbours_list_of_our_node)
|
||||
#print(neighbours_list_of_our_node)
|
||||
|
||||
for node_ in neighbours_list_of_our_node:
|
||||
# jesli pozucja wezla nie jest w fringe i nie jest w visited
|
||||
@ -256,3 +257,9 @@ class BFS:
|
||||
x = node.Node(tmp_node, node_[0], node_[1], node_[2]) # action
|
||||
heapq.heappush(fringe, (counter, x))
|
||||
self.window.draw_search([self.agent.position_x, self.agent.position_y], [node_[1][0], node_[1][1]], self.agent.current_map.tile_size, self.agent.current_map, self.agent)
|
||||
|
||||
p = manhattan(node_[1], goaltest) + node_[2]
|
||||
# print(f'Mancgeten = {p}')
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user