aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py56
1 files changed, 32 insertions, 24 deletions
diff --git a/main.py b/main.py
index c204d91..babd758 100644
--- a/main.py
+++ b/main.py
@@ -1,20 +1,22 @@
-mapWidth = 4
-mapHeight = 5
-startPos = [0, 2]
-endPos = [1, 4]
+# Constants
+MAPWIDTH = 4
+MAPHEIGHT = 5
+
+STARTPOINT = [0, 2]
+ENDPOINT = [1, 4]
checkpointList = [
- startPos,
+ STARTPOINT,
[0, 0],
[1, 4],
[3, 2],
[3, 4],
- endPos
+ ENDPOINT
]
-obstacleList = [
- [[2, 0], [3, 0]], # obstacleList[0]
- [[1, 0], [1, 1]], # obstacleList[1]
+wallList = [ # Each of these walls' locations are based on their neighboring squares (Ex. wall #1 is between (2, 0) and (3, 0)
+ [[2, 0], [3, 0]],
+ [[1, 0], [1, 1]],
[[3, 0], [3, 1]],
[[0, 1], [0, 2]],
[[0, 2], [1, 2]],
@@ -25,23 +27,28 @@ obstacleList = [
]
courseMap = []
-for x in range(mapWidth): # Like for(int x = 0; x > 20; i++) {
- for y in range(mapHeight):
- courseMap.append([x, y])
+
+
+def populateCourse(course, width, height):
+ for x in range(width):
+ for y in range(height):
+ course.append([x, y])
+
def queryNeighbors(node):
-# Right Down Left Up
- directions = [[1,0], [0, 1], [-1, 0], [0, -1]]
+ # Right Down Left Up
+ directions = [[1, 0], [0, 1], [-1, 0], [0, -1]]
result = []
- for dir in directions: # Basically for x in range(4)
- neighbor = [node[0] + dir[0], node[1] + dir[1]] # [nodeX + DirectionModifierX, nodeY + DirectionModifierY]
- if neighbor in courseMap: # If neighbor is present in the grid:
+ for dir in directions: # for x in range(4)
+ neighbor = [node[0] + dir[0], node[1] + dir[1]] # [nodeX + DirectionModifierX, nodeY + DirectionModifierY]
+ if neighbor in courseMap: # Makes sure the neighbor is within bounds
result.append(neighbor)
- for x in range(len(obstacleList)):
- if node in obstacleList[x] and neighbor in obstacleList[x]:
+ for x in range(len(wallList)):
+ if node in wallList[x] and neighbor in wallList[x]: # TBD: Optimize determining if wall is present
result.remove(neighbor)
return result
+
def getShortestPath(courseMap, startPos, endPos):
searchPaths = [[startPos]]
visitedCoordinates = [startPos]
@@ -59,11 +66,12 @@ def getShortestPath(courseMap, startPos, endPos):
searchPaths.append(currentPath + [nextPos])
visitedCoordinates += nextPos
-def solveCourse(courseMap, obstacleList, checkpointList):
- for x in range(len(checkpointList) - 1): # Repeat 6 Times
- shortestPath = getShortestPath(courseMap, checkpointList[x], checkpointList[x + 1])
+
+def solveCourse(course, obstacles, checkpoints):
+ for x in range(len(checkpoints) - 1):
+ shortestPath = getShortestPath(course, checkpoints[x], checkpoints[x + 1])
print(shortestPath)
-
-solveCourse(courseMap, obstacleList, checkpointList)
+populateCourse(courseMap, MAPWIDTH, MAPHEIGHT)
+solveCourse(courseMap, wallList, checkpointList)