T tswhq Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-26 #1 我初步想是:将数据放在2维矩阵中,每个数据对应一个Image控件,但算法不会请大家赐教
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-26 #2 TImageID = Integer; TImages: array of array of TImageID; ...算法... if Images[0, 0] = Images[x, y] then begin Images[0, 0] := -1; //代表空格。 Images[x, y] := -1; //代表空格。 end;
TImageID = Integer; TImages: array of array of TImageID; ...算法... if Images[0, 0] = Images[x, y] then begin Images[0, 0] := -1; //代表空格。 Images[x, y] := -1; //代表空格。 end;
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-26 #3 连接算法?从一个格子(x,y)放出射线(在X,Y任何一个维度上加或者减),如果遇到的是 空格子,就打上标记,如果格子非空,则检查是不是相同类型的(类型相同表示可以连上, 不同就终止)。然后,遍历二维表,对所有已经打上标记的格子,执行同样的操作。结束后 再遍历一次——这样就完成了两次转折。 至于二维格子的数据结构可以考虑参考 1023319 号帖子的策略。 显示可以采用DrawGrid+ImageList
连接算法?从一个格子(x,y)放出射线(在X,Y任何一个维度上加或者减),如果遇到的是 空格子,就打上标记,如果格子非空,则检查是不是相同类型的(类型相同表示可以连上, 不同就终止)。然后,遍历二维表,对所有已经打上标记的格子,执行同样的操作。结束后 再遍历一次——这样就完成了两次转折。 至于二维格子的数据结构可以考虑参考 1023319 号帖子的策略。 显示可以采用DrawGrid+ImageList