作者michael0728n (蒜˙遠古)
看板C_and_CPP
標題[問題] 表示二維array的上下左右 style問題
時間Wed Jun 25 17:36:30 2014
開發平台(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走過一遍才了解為什麼要這樣寫
想知道有沒有更好的寫法
謝謝~
--
人只有兩個時候才會感受到自己存在:
大幅進步時、大幅墮落時
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.233.230
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1403688998.A.58D.html
→ lNishan:向量 ? 06/25 18:31
推 LPH66:你這是四個斜角吧? 不過這種狀況我會先用一個陣列把 offset 06/25 19:35
→ LPH66:像這樣存起來: int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; 06/25 19:36
→ LPH66:後面再對這個 dir 做迴圈, 上下左右的註解可以跟著 dir 放 06/25 19:36
→ LPH66:八方向的話改一下 dir 跟迴圈就可以了 06/25 19:37
→ michael0728n:對耶 是四個斜角沒錯 耍蠢了XP 06/25 22:34
→ michael0728n:存offset好像不錯 感謝XD 06/25 22:35