这个例子昨天正好看了,话说那本书的例子都很不错~
. B6 \$ Z* J7 x$ C/ E$ v" }不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
* ]5 c3 q( Q& i: cis
1 c& u; c E% x, n C* w% x$ U i,no,m:integer; --定义整型
( r" Y) R7 G2 @6 {$ L Buf:object; --定义object; ^5 u/ }4 K' x( d7 @
do9 L& {3 \/ Q! c! z" [, `1 w
m:=0;
& z: G% u2 b) _( k# v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ E; j9 S( |) n. }0 I
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ N# [, B8 i D& h' D& k) f! [
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , I+ @) k& ~# \! W4 r1 [
@._From:=PartsTable[5,i]; 8 k2 L6 r/ B: W' L6 A( _3 q# h2 i
@._To:=PartsTable[6,i];
8 v' ?) o. I! ^0 q if no=PartsNo+PartsTable[2,i] then
$ P) G- T* e+ D# R PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 ~* X4 h0 I( b9 d2 m! v5 q5 g; L/ e0 B. g2 s/ ~
end;& ?3 V' \0 V$ q _7 w
i:=PartsTable.YDim+1;
. x9 N+ P) ]3 p7 ]6 } end;7 p% L7 [: y1 D9 ]2 l/ ?/ y& J! o
m:=m+PartsTable[2,i];
3 u; F' y; M# A5 R Q9 l7 T next;' @) I3 ~0 ^) `& i
& c3 B* `# C1 T) Q Buf:=str_to_obj(sprint("BF",@._From));
, w f; p$ l5 t! o4 r @.move(Buf);
/ e( b; I! U1 S4 l5 H: M$ D. Qend; |