[問題] 表示二維array的上下左右 style問題

作者: michael0728n (蒜˙遠古)   2014-06-25 17:36:30
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)

問題(Question):
我有一個二維array表示一個被分割成很多格子的平面
其中有一個運算邏輯是要對其中一個格子的上下左右做一件事
不過不知道怎樣的style可以讓後面閱讀我程式碼的人比較好懂
目前是這樣的方式
//int row,col is the coordinate of target cell
for(int i=-1; i<=1; i=i+2){
for(int j=-1; j<=1; j=j+2){
if( checkBoundry (row+i, col+j) ){ // execute foo only if in the array
foo (array[row+i][col+j]); //will modify element in the 2D array
}
}
}
這邊莫名卡很久,這是我目前想到比較易懂的方式
可是感覺還是怪怪的,好像無法一眼看出這段在幹嘛
好像要跟著兩個for的iterator走過一遍才了解為什麼要這樣寫
想知道有沒有更好的寫法
謝謝~
作者: lNishan (紫小霓)   2014-06-25 18:31:00
向量 ?
作者: LPH66 (-6.2598534e+18f)   2014-06-25 19:35:00
你這是四個斜角吧? 不過這種狀況我會先用一個陣列把 offset像這樣存起來: int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};後面再對這個 dir 做迴圈, 上下左右的註解可以跟著 dir 放八方向的話改一下 dir 跟迴圈就可以了
作者: michael0728n (蒜˙遠古)   2014-06-25 22:34:00
對耶 是四個斜角沒錯 耍蠢了XP存offset好像不錯 感謝XD

Links booklink

Contact Us: admin [ a t ] ucptt.com