Skip to content

Commit d434828

Browse files
committed
Added search to pathfinding lib
1 parent 29f2dd6 commit d434828

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

2018/pathfinding.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def grid_to_vertices (self, grid, diagonals_allowed = False, wall = '#'):
5151
5252
:param string grid: The grid to convert
5353
:param Boolean diagonals_allowed: Whether diagonal movement is allowed
54+
:param str wall: What is considered as a wall
5455
:return: True if the grid was converted
5556
"""
5657
self.vertices = []
@@ -77,6 +78,28 @@ def grid_to_vertices (self, grid, diagonals_allowed = False, wall = '#'):
7778

7879
return True
7980

81+
def grid_search (self, grid, items):
82+
"""
83+
Searches the grid for some items
84+
85+
:param string grid: The grid to convert
86+
:param Boolean items: Whether diagonal movement is allowed
87+
:return: True if the grid was converted
88+
"""
89+
items_found = {}
90+
y = 0
91+
92+
for line in grid.splitlines():
93+
for x in range(len(line)):
94+
if line[x] in items:
95+
if line[x] in items_found:
96+
items_found[line[x]].append((x, y))
97+
else:
98+
items_found[line[x]] = [(x, y)]
99+
y += 1
100+
101+
return items_found
102+
80103
def vertices_to_grid (self, mark_coords = [], wall = '#'):
81104
"""
82105
Converts a set of coordinates to a text
@@ -221,9 +244,7 @@ def topological_sort_alphabetical (self):
221244
not_visited.remove(next_node)
222245
current_distance += 1
223246
edges = {x:edges[x] for x in edges if x in not_visited}
224-
print (not_visited, edges)
225247
next_node = sorted(x for x in not_visited if not x in sum(edges.values(), []))
226-
print (len(next_node), next_node)
227248
if len(next_node):
228249
next_node = next_node[0]
229250

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy