1. python座標移動進階方法
    1. 座標移動
    2. 教學
      1. 初階方法
      2. 進階方法

python座標移動進階方法

python座標移動進階方法

python

座標移動

舉例來說,就是我們時常會看到apcs或其他相關競賽考試出座標的題目,但這個要怎麼解呢?

教學

初階方法

還記得如果我們要判斷n*m的地圖上有那些地方可以走(-1代表不能),一開始會怎麼寫移動fuction嗎?

1
2
3
4
5
6
7
8
def move(x, y):
if x + 1 < n: #不超過範圍
if list1[x+1][y] != -1:
return x+1 ,y
elif x -1 >= 0:
if list1[x-1][y] != -1:
return x-1, y
...

通常按常理會這麼寫吧,但其實這樣真的很麻煩又很沒效率。

進階方法

我們可以改用for迴圈來做這件事情:

1
2
3
4
5
6
7
8
9
def move(x, y):
d = [[1, 0], [-1, 0], [0, 1], [0, -1]]
for i in d:
newx = x + i[0]
newy = y + d[1]
if 0 <= newx < n and 0 < newy < m:
if list1[newx][newy] != -1:
returb newx, newy
return x, y

像這樣就很省了了吧~