Why did you get rid of all the comments? (your old post: Help! : Treasured in Ice)
I took your code and added comments:
inSearch = True # variable not used
# This whole section is not used in your algorithm yet.
# When you do have a use for it, you can uncomment it back
# by selecting all lines with comments
# and then pressing control + '?'
#
# width = 19
# height = 15
# def coorConvert(i, dist):
# return i * 8 + 10
# wall = "X"
# unknown = "?"
# empty = "."
# maze = []
# for i in range(height):
# maze.append([wall])
# for j in range(width - 1):
# maze[0].append(wall)
# for i in range(height - 1):
# if i % 2:
# for j in range(width - 1):
# maze[i].append(unknown)
# else:
# for j in range(width - 1):
# if j % 2:
# maze[i].append(wall)
# else:
# maze[i].append(unknown)
# for j in range(width - 1):
# maze[height-1].append(wall)
# for i in range(height):
# maze.append([wall])
# hero.row = 13
# hero.col = 17
# exitRow = 13
# exitCol = 17
distance = 16
move = Vector(distance, 0)
direction = Vector.add(move, hero.pos)
distanceBetweenRooms = 16 # variable not used
startRoom = {"x": 150, "y": 120} # variable not used
distance = 16 # redundant code
move = Vector(distance, 0) # redundant code
direction = Vector.add(move, hero.pos) # redundant code
while True: # can't exit the loop
# replace this comment with something that explains what this while loop does
while not (hero.isPathClear(hero.pos, direction)):
move = Vector.rotate(move, Math.PI / 2)
direction = Vector.add(move, hero.pos)
#hero.say(direction)
# add a useful comment here about the following code
item = hero.findNearest(hero.findItems()) # variable not used before reassignment
items = hero.findItems() # as far as I know, there is only 1 item
for item in items:
hero.move(item.pos)
# why is this section split apart from the while loop above?
# they both deal with hero movement through the maze
hero.moveXY(direction.x, direction.y)
move = Vector.rotate(move, -Math.PI / 2)
direction = Vector.add(move, hero.pos)
hero.moveXY(150, 120) # this code never executes
Things to consider:
- What if you reach a dead-end and have to turn back? How do you remember what positions you have been to?
- You can try implementing an algorithm that can clear mazes (There are plenty here: https://en.wikipedia.org/wiki/Maze_solving_algorithm)
- Or you can implement a modified path finding algorithm.