Código Python:
Ver originaldef searchR(grid):
for i, row in enumerate(grid):
for j, value in enumerate(row):
if value == 'R':
return (i, j)
def searchExit(grid, n, x, y, dx, dy):
c = 0
while 0 <= x < n and 0 <= y < n:
if grid[x][y] == '#':
return -1
c += 1
x += dx
y += dy
return c
n = int(raw_input())
grid = []
for i in range(n):
grid.append(raw_input())
x, y = searchR(grid)
l = [
(1, 1),
(1, 0),
(0, 1),
(0, -1),
(0, -1),
(-1, 0),
(-1, 0)
]
ans = []
for dx, dy in l:
res = searchExit(grid, n, x, y, dx, dy)
if res >= 1:
ans.append(res)
if ans:
print min(ans) - 1
else:
print -1
La única cosa que tienes que hacer es checar las 8 posibles lineas rectas, ver si se salen del mapa y de ser así guardarlas.
Este problema es mucho mas fácil cuando el robot puede girar