这个例子昨天正好看了,话说那本书的例子都很不错~
2 V) g* z9 {, J% i, P; U不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. `! v! V% w8 i# M' Z: A
is
# c7 G2 ?+ P3 j; T- o/ l; ?; X i,no,m:integer; --定义整型
) h) D! h' N1 t/ l Buf:object; --定义object
5 S. q$ o/ v3 _) R' ?8 V' z' Pdo1 g- l* _8 C7 D+ ~1 u) y8 x$ J. s0 X
m:=0;
- x. U \% q. D( a: F' U no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* [% x/ M* x& u1 E7 P3 b- n7 C, R
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行# ?& N9 H2 v6 w |* Z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. s& m$ N6 A) \: B& C8 a! A# s @._From:=PartsTable[5,i]; / N/ F0 a5 d7 o) h
@._To:=PartsTable[6,i];2 G4 K" D7 ?" H* w, Q- H
if no=PartsNo+PartsTable[2,i] then
/ f! |- {8 j0 U, Y PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% K+ p+ ]* D! k: }8 L1 a: d
0 y( l7 f9 P3 R end;! R$ f, `: W1 ~8 g- q' z6 S2 K
i:=PartsTable.YDim+1;
: T9 v% F, {% g* S end;
: H' K0 ^3 a* U/ |9 J; v, t1 V. M& l m:=m+PartsTable[2,i];
9 Q9 y9 }6 z9 e' f7 a1 _: n5 T/ } next;' F% z0 `: u. s& h8 O" Y
( j5 D/ ^/ E9 f" D3 x
Buf:=str_to_obj(sprint("BF",@._From));! J# I: f3 P& u
@.move(Buf);' ]6 o8 b* b4 s2 k
end; |