佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1546|回复: 11

不肯定... [row][column] 还是 [column][row], 有差吗?

[复制链接]
发表于 11-10-2006 03:34 PM | 显示全部楼层 |阅读模式
今天写写下 code ...
忽然朋友问, 用 2D array 来代表 agme board ...
应该是[row][column] 还是 [column][row],
他讲他看不同的书用不同的...
我不是很肯定...  有差吗?
不是一样的吗???
回复

使用道具 举报


ADVERTISEMENT

发表于 11-10-2006 08:46 PM | 显示全部楼层
是有关系的,
关系到你是用来做什么、用什么运算法则、用哪种设计架构……

  1. for(var x=0;x<n;x++){
  2.   for(var y=0;y<m;y++){}
  3. }

  4. for(var y=0;y<m;y++){
  5.   for(var x=0;x<n;x++){}
  6. }
复制代码

这两段呈现很大的差别,哪先哪后在演算时蛮重要的。
回复

使用道具 举报

 楼主| 发表于 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 发表
一般上大多數人會習慣使用 由左上往右, 一行一行向下處理
這是書寫習慣, 而且在處理文字顯現時也會這樣做
許多的圖檔都是左至右, 上至下或下至上的格式

如果你的
回复

使用道具 举报

Follow Us
发表于 12-10-2006 05:18 PM | 显示全部楼层
路过。。正在学习^^不要介意
回复

使用道具 举报

行尸走肉 该用户已被删除
发表于 14-10-2006 10:06 AM | 显示全部楼层
如跟programming syntax跑, 是[R][C], 但你自已写loop来作你的array时, 你当然可以自已决定. 都是一样.
回复

使用道具 举报


ADVERTISEMENT

发表于 27-10-2006 04:21 PM | 显示全部楼层
行尸走肉 对,基本是可以自已决定,不过如果运算需要取 row 较频数高时
Array[y][x] 会较好,因为你可以 row = Array[y]
当然还有其他种种不一样的因素。

所以绝对是不一样的。

回主题,楼主的游戏完成了?
回复

使用道具 举报

 楼主| 发表于 27-10-2006 04:59 PM | 显示全部楼层
原帖由 sson 于 27-10-2006 04:21 PM 发表
行尸走肉 对,基本是可以自已决定,不过如果运算需要取 row 较频数高时
Array 会较好,因为你可以 row = Array
当然还有其他种种不一样的因素。

所以绝对是不一样的。

回主题,楼主的游戏完成了?


谢谢关心。。。
TTT 好了, Ohtellor 和 Checker 还在 BETA 。。。 还没到 STABLE。。。

其实我的工作范围是设计 shynthesize engine , 。。。
所以我只是作游戏的 rule-controllor (肯定每步都是“合法”的) 和
status determination engine (算分,判断谁 输或赢)。。。

其实之前好想作 围棋的。。。 但是作不到它的 status determination engine 。。。

    
回复

使用道具 举报

发表于 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 的程式时就用得上了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-9-2024 03:23 AM , Processed in 0.138797 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表