區域分割問題

import numpy as np

arr=np.arange(64).reshape(8,8)
arr.fill(1)

arr[0][4:6]=0
arr[1][2:5]=0
arr[4][2:5]=0
arr[5][3:5]=0
arr[6][6]=0
arr[5][6]=0
print(arr,"*"*100)
# print(arr[0])
# print(arr[:,2])





def brandChange(a,r,c):
    a[r][c] = 2
    if(c<7 and a[r][c+1]==0):
        brandChange(a,r,c+1)

    if (c >0 and a[r][c - 1] == 0):
        brandChange( a, r, c - 1 )

    if (r<7 and a[r+1][c] == 0):
        brandChange( a, r+1, c)

    if (r >1 and a[r - 1][c] == 0):
        brandChange( a, r -1, c )


row=0
col=0
c=0
try:
    while True:
        #有等於0的,就一直遍歷
        b=arr[row]
        while len(b[b==0])>0:
            # 發現一個等於0 的就遍歷
            if(arr[row][col]==0):
                c=c+1
                brandChange(arr,row,col)
            col+=1
            if(col >7):
                col=0
                break
        row = row + 1
        if row >7:
            break
except:
    print(1)
print(arr)
print("共有"+str(c)+"個0區域")


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章