-3
因此,我正在處理一個角色在四個方向上移動的遊戲,並且無論它移動到何處,都會將其座標存儲在500x700維度上的二維數組中。查找二維數組中的封閉區域
如果字符移動到每座標(5,10)的發言權,則陣列[5] [10]將被設置爲1,否則爲0。
我想找到是一個矩形封閉的區域在這個數組中。我怎麼會繼續這樣做呢?我不知道,我試過所有的試驗和錯誤,但有人可以幫我嗎?先謝謝你!
編輯****
所以我們可以說我有10×10的二維數組:
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
我的問題是,當有1周圍的「矩形」,我將如何搜索爲了那個原因?
例如:
0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1的,從[1] [1]應該被檢測爲區域42 6的矩形寬度開始和7在長度。
我試過的是用for循環遍歷數組,然後每當有1時,搜索長度和高度,並確定是否存在於另一邊,在位置「n」處的長度相同,遠。這是否適合這樣做?什麼是更有效的解決方案?
請發表你已經嘗試什麼,爲什麼你認爲它會失敗。另外,你的意思是什麼*矩形封閉區*? – Christian
這個數組是如何設置的?每一行都是一個子數組? – Bryan
@Bryan:這是一個2D數組。所以基本上你是對的。 – Stevantti