[问题] 表示二维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