Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def find_moves_sequence(grid):
- grid = [[*row] for row in grid]
- w, h = len(grid[0])-1, len(grid)-1
- dirs = {
- (0, 1):'R',
- (1, 0):'D',
- (0,-1):'L',
- (-1,0):'U'
- }
- def foo(x,y, _ascii):
- if x > h or y > w: return None
- if _ascii > 90: return []
- for (i, j), direction in dirs.items():
- if grid[x][y]==chr(_ascii) and (path:=foo(x+i, y+j, _ascii+1)) != None:
- return [((x,y), direction), *path]
- return None
- path, directions = [], []
- for coord, dirc in foo(0,0, 65):
- path.append(coord); directions.append(dirc)
- for i, row in enumerate(grid):
- print(row,'\t'.rjust(6), ["#" if (i, ii) in path else n for ii, n in enumerate(row)])
- print()
- print('Moves Sequence:', ''.join(directions[:-1]))
- print({grid[x][y]:(x,y) for (x,y) in path})
- grid = ["ACRFGHOT",
- "BCDEVIQR",
- "CXDUKJPQ",
- "DYASLOPQ",
- "ETVHMNSR",
- "FSZVVUTB",
- "GDYXWUPV",
- "HEWQSDEF"]
- find_moves_sequence(grid)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement