n, m = 4, 4
x, y, forward = 1, 1, 0
gameMap = [
[1, 1, 1, 1],
[1, 0, 0, 1],
[1, 1, 0, 1],
[1, 1, 1, 1,]
]
d = [(0, -1), (1, 0), (0, 1), (-1, 0)]
while(True):
blocked = 0
for _ in range(0, 4):
tempx = x + d[forward][0]
tempy = y + d[forward][1]
if gameMap[tempx][tempy] == 1 or gameMap[tempx][tempy] == 2:
if forward - 1 < 0:
forward = 3
else:
forward -= 1
blocked = 1
continue
elif gameMap[tempx][tempy] == 0:
gameMap[x][y] = 2
x = tempx
y = tempy
blocked = 0
break
if blocked == 1:
tempForward = abs(forward - 2)
tempx = x + d[tempForward][0]
tempy = y + d[tempForward][1]
if gameMap[tempx][tempy] == 1:
gameMap[x][y] = 2
break
else:
gameMap[x][y] = 2
x = tempx
y = tempy
s = 0
for i in gameMap:
s += i.count(2)
print(s)
댓글
댓글 쓰기