Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
I regret not making it random solution in Clear category for Open Labyrinth by Vulwsztyn
def rese(s,mm):
if s==1:
s=0
for i in range(1, 11, 1):
for j in range(1, 11, 1):
if mm[i][j]>1:
mm[i][j]-=1
def checkio(maze_map):
x = 1
y = 1
s = 0
a = ''
m = maze_map
mm = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
while (x != 10 or y != 10):
if (m[y][x + 1] == 0): # Wschód
rese(s,mm)
m[y][x] = 1
if m[y - 1][x] == 0 or m[y + 1][x] == 0 or m[y][x - 1] == 0:
for i in range(1, 11, 1):
for j in range(1, 11, 1):
if mm[i][j]>=1:
mm[i][j]+=1
mm[y][x] = 1
x += 1
a += 'E'
elif (m[y + 1][x] == 0): # Południe
rese(s,mm)
m[y][x] = 1
if m[y - 1][x] == 0 or m[y][x - 1] == 0:
for i in range(1, 11, 1):
for j in range(1, 11, 1):
if mm[i][j]>=1:
mm[i][j]+=1
mm[y][x] = 1
y += 1
a += 'S'
elif (m[y][x - 1] == 0): # Zachód
rese(s,mm)
m[y][x] = 1
if m[y - 1][x] == 0:
for i in range(1, 11, 1):
for j in range(1, 11, 1):
if mm[i][j]>=1:
mm[i][j]+=1
mm[y][x] = 1
x -= 1
a += 'W'
elif (m[y - 1][x] == 0): # Północ
rese(s,mm)
m[y][x] = 1
mm[y][x] = 1
y -= 1
a += 'N'
else: #Cofanie
m[y][x] = 1
if (mm[y][x + 1] == 1): # Wschód-cofanie
mm[y][x] = 0
x += 1
a+='E'
elif (mm[y + 1][x] == 1): # Południe-cofanie
mm[y][x] = 0
y += 1
a+='S'
elif (mm[y][x - 1] == 1): # Zachód-cofanie
mm[y][x] = 0
x -= 1
a+='W'
elif (mm[y - 1][x] == 1): # Północ-cofanie
m[y][x] = 1
mm[y][x] = 0
y -= 1
a+='N'
s=1
return(a)
Oct. 18, 2016