这个例子昨天正好看了,话说那本书的例子都很不错~
! Y6 y$ F9 q- N' Y2 Q7 \, J" D不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. R4 c) ^& ^1 K2 s, f- S3 l
is
1 w" b$ U: Q; y3 a i,no,m:integer; --定义整型/ _+ o" p) n! g% ~: f1 H
Buf:object; --定义object; T" `' L7 h, v+ F7 s$ z; L
do+ d: {7 J& v- o
m:=0;
1 h/ D) V& w* \ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ s$ `: k' D2 W3 f \ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行- D9 Y8 m; v% e% x8 O
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
@ E, u, w: D* _8 V# j" c @._From:=PartsTable[5,i];
' S" F6 R( u( r) i. t" b @._To:=PartsTable[6,i];2 x3 W; L; T' R, I3 \2 I& c; ?
if no=PartsNo+PartsTable[2,i] then
6 ?- ~) ]1 [4 q1 j PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 B' W+ k3 F5 Y) c9 I! @
8 M, P" k& f# d- X ?7 [% g5 C end;1 w$ a8 I4 H3 J* t* t
i:=PartsTable.YDim+1;
1 q. ~, d4 S( C% N Z; w+ h end;
$ a% `: B8 ?& }, k m:=m+PartsTable[2,i];
" k8 e$ \4 M- p9 `8 g- j next;
+ q. Y+ c1 k7 j% T/ @" \
; O' F9 q! N, h: m! K0 { Buf:=str_to_obj(sprint("BF",@._From));5 j0 |( h5 L1 g1 g6 R
@.move(Buf);
% R& R: C* d+ A$ E; rend; |