Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- q=deque()
- dists=[]
- def print_maze(maze):
- for i in maze:
- for j in i:
- print(pconv(j), end='\t')
- print()
- def conv(ch):
- if ch=='□':
- return 0
- if ch=='■':
- return 100500
- if ch=='X':
- return -1
- def pconv(ch):
- if ch==100500:
- return '■'
- if ch==-1:
- return 'X'
- return ch
- def fill():
- for i in range(12):
- for j in range(12):
- if(maze[i][j]==0):
- maze[i][j]=1
- def move(dx,dy,ans):
- if dx==1 and dy==0:
- ans+='D'
- if dx==0 and dy==1:
- ans+='R'
- if dx==-1 and dy==0:
- ans+='U'
- if dx==0 and dy ==-1:
- ans+='L'
- nmaze=[[0 for i in range(12)] for j in range(12)]
- for i in range(1,11):
- for j in range(1,11):
- if(maze[i][j]!=100500 and maze[i][j]!=-1 and maze[i+dx][j+dy]!=100500 and maze[i+dx][j+dy]!=-1):
- nmaze[i+dx][j+dy]+=maze[i][j]
- nmaze[i][j]-=maze[i][j]
- if(maze[i][j]!=100500 and maze[i+dx][j+dy]==-1):
- nmaze[i][j]=-maze[i][j]
- for i in range(1,11):
- for j in range(1,11):
- maze[i][j]+=nmaze[i][j]
- return ans;
- s='■■■■■■■■■■■■■□□■■□■□□■■■■□■□□□□■□□□■■□■■□X□□□□□■■□□■□□□□■□□■■□□□□■■■□□□■■□□□□■□□■□□■■□□□□□■□□■□■■□■□□■□■□■□■■□□■■□□■□■□■■■□□□□■■□□□■■■■■■■■■■■■■'
- maze=[[conv(s[j]) for j in range(12*i,12*i+12)] for i in range(12)]
- ans=''
- ox,oy=0,0
- for i in range(12):
- for j in range(12):
- if maze[i][j]==-1:
- ox,oy=i,j
- q.append((ox,oy))
- dmaze=[i.copy() for i in maze]
- dmaze[ox][oy]=0
- while(len(q)!=0):
- tx,ty=q.popleft()
- ds=[(0,1), (0,-1), (1,0), (-1,0)]
- for dx, dy in ds:
- if(dmaze[tx+dx][ty+dy]==0):
- dmaze[tx+dx][ty+dy]=dmaze[tx][ty]+1
- q.append((tx+dx,ty+dy))
- dmaze[ox][oy]=0
- fill()
- # ans=move(0,1,ans)
- # ans=move(1,0,ans)
- print_maze(maze)
- while(1):
- ch=input()
- if(ch=='w'):
- ans=move(-1,0,ans)
- if(ch=='a'):
- ans=move(0,-1,ans)
- if(ch=='d'):
- ans=move(0,1,ans)
- if(ch=='s'):
- ans=move(1,0,ans)
- print_maze(maze)
- print(ans)
- for i in dmaze:
- for j in i:
- print(j,end='\t')
- print('\n')
- # move(maze, 1, 0)
- # print_maze(maze)
- # move(maze, 0, 1)
- # print_maze(maze)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement