Solving maze puzzle in python
This is a 5*5 puzzle solution
def print_maze(maze):
for i in maze:
for j in i:
print(j,end="")
print()
def find_start(maze):
for i in range(5):
for j in range(5):
if maze[i][j]=="S":
return i,j
return False
def is_valid_position(maze,r,c):
if r<0 or c<0:
return False
if r>4 or c>4:
return False
if maze[r][c] in " E":
return True
return False
def solve(maze):
stack=[]
if find_start(maze):
stack.append( (find_start(maze)))
print("Stack is ",stack)
while len(stack)>0:
r,c=stack.pop()
if maze[r][c]=="X":
continue
if maze[r][c]=="E":
print("Goal")
return True
maze[r][c]="X"
print("Current position is ",r,c)
if is_valid_position(maze,r-1,c):
stack.append((r-1,c))
if is_valid_position(maze,r+1,c):
stack.append((r+1,c))
if is_valid_position(maze,r,c-1):
stack.append((r,c-1))
if is_valid_position(maze,r,c+1):
stack.append((r,c+1))
print_maze(maze)
print("Stack is ",stack)
return False
maze=[["#","#","#","#","#"],
["S"," ","#","#","#"],
["#"," "," ","#","#"],
["#","#"," ","#","#"],
["#","#"," "," ","E"]
]
solve(maze) #Call
Comments
Post a Comment