查看: 1552|回复: 11
|
不肯定... [row][column] 还是 [column][row], 有差吗?
[复制链接]
|
|
今天写写下 code ...
忽然朋友问, 用 2D array 来代表 agme board ...
应该是[row][column] 还是 [column][row],
他讲他看不同的书用不同的...
我不是很肯定... 有差吗?
不是一样的吗??? |
|
|
|
|
|
|
|
发表于 11-10-2006 08:46 PM
|
显示全部楼层
是有关系的,
关系到你是用来做什么、用什么运算法则、用哪种设计架构……
- for(var x=0;x<n;x++){
- for(var y=0;y<m;y++){}
- }
- for(var y=0;y<m;y++){
- for(var x=0;x<n;x++){}
- }
复制代码
这两段呈现很大的差别,哪先哪后在演算时蛮重要的。 |
|
|
|
|
|
|
|
楼主 |
发表于 11-10-2006 10:41 PM
|
显示全部楼层
原帖由 sson 于 11-10-2006 08:46 PM 发表
是有关系的,
关系到你是用来做什么、用什么运算法则、用哪种设计架构……
for(var x=0;x<n;x++){
for(var y=0;y<m;y++){}
}
for(var y=0;y<m;y++){
for(var x=0;x<n;x++){}
}
这两段 ...
哇!!! 大哥... 我真的感觉不到有多大的的差别哦.....
我是用来 represent class game board ...
如:
Tic-Tac-Toe , Ohtellor, Checker , 和 Chess 等等的...
我每次都是:
for(int row=0; row < rowNum; row++){
for(int column=0; column < columnNum; column++){
board[row][column] = aValue;
}
} |
|
|
|
|
|
|
|
发表于 11-10-2006 11:32 PM
|
显示全部楼层
嗯……的确看似没差。
不过你的方法是由上至下、左到右。
也就是小章鱼的方法一。
方法二则是由左至右、上到下。
一般上是没差啦,不过如果是 2.5D 在贴图时就有影响。
至于在游戏内核运算时,对不一样的游戏有不一样的方便,也有没差的情况。
请问 Ohtellor 是什么类型的游戏?
还有,小章鱼不是“大”哥,都叫“小”章鱼咯,当然是“小小”的咯,呵呵 |
|
|
|
|
|
|
|
发表于 12-10-2006 01:14 AM
|
显示全部楼层
一般上大多數人會習慣使用 由左上往右, 一行一行向下處理
這是書寫習慣, 而且在處理文字顯現時也會這樣做
許多的圖檔都是左至右, 上至下或下至上的格式
如果你的遊戲地圖是大多數上下捲動, 大多會使用 map[y][x],
可以比較容易的處理整行 (copy, move, delete, ...)
左右捲動的則 map[x][y] 比較容易
從左上往下, 然後一排排向右處理
wolf 3d 就是使用類似的方法, 應為它裡面許多的牆壁都是對水平面呈直角
另外 Ohtellor 是指黑白翻轉棋 |
|
|
|
|
|
|
|
楼主 |
发表于 12-10-2006 05:11 PM
|
显示全部楼层
原帖由 sson 于 11-10-2006 11:32 PM 发表
嗯……的确看似没差。
不过你的方法是由上至下、左到右。
也就是小章鱼的方法一。
方法二则是由左至右、上到下。
一般上是没差啦,不过如果是 2.5D 在贴图时就有影响。
至于在游戏内核运算时,对不一样的游 ...
[quote]原帖由 flashang 于 12-10-2006 01:14 AM 发表
一般上大多數人會習慣使用 由左上往右, 一行一行向下處理
這是書寫習慣, 而且在處理文字顯現時也會這樣做
許多的圖檔都是左至右, 上至下或下至上的格式
如果你的 |
|
|
|
|
|
|
|
发表于 12-10-2006 05:18 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 14-10-2006 10:06 AM
|
显示全部楼层
如跟programming syntax跑, 是[R][C], 但你自已写loop来作你的array时, 你当然可以自已决定. 都是一样. |
|
|
|
|
|
|
|
发表于 27-10-2006 04:21 PM
|
显示全部楼层
行尸走肉 对,基本是可以自已决定,不过如果运算需要取 row 较频数高时
Array[y][x] 会较好,因为你可以 row = Array[y]
当然还有其他种种不一样的因素。
所以绝对是不一样的。
回主题,楼主的游戏完成了? |
|
|
|
|
|
|
|
楼主 |
发表于 27-10-2006 04:59 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 27-10-2006 05:19 PM
|
显示全部楼层
呵呵,不客气,只是近期鲜少上来,顺口问问 |
|
|
|
|
|
|
|
发表于 12-11-2006 12:30 PM
|
显示全部楼层
原帖由 sson 于 27-10-2006 04:21 PM 发表
行尸走肉 对,基本是可以自已决定,不过如果运算需要取 row 较频数高时
Array[y][x] 会较好,因为你可以 row = Array[y]
当然还有其他种种不一样的因素。
所以绝对是不一样的。
回主题,楼主的游戏完成了?
原来还可以这样,从来没有想过。
如果 Array[x][y] ,就可以 column = Array[x] 了对吧?
学到了,下一次做 grid 的程式时就用得上了。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|