这个例子昨天正好看了,话说那本书的例子都很不错~
3 |) t1 a2 T5 x2 r不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% t7 {) h& w: s! M- ~+ {is6 f8 e1 {0 H7 c3 \# Y+ @
i,no,m:integer; --定义整型
6 h: ? H. [' P" _! Y8 L/ J Buf:object; --定义object
1 A5 |$ ?- M) N% t0 [do$ S. t! a& v. K) Y8 B
m:=0;
! z) d* { r( ` no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% o" \8 O8 q/ n6 P% W
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% E1 @& Y! D6 w6 D8 h8 y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 G) t" p2 i3 _ w! }9 N
@._From:=PartsTable[5,i]; 4 p, A5 o. w# u, B7 x
@._To:=PartsTable[6,i];2 P- z7 r! ?; T8 z- c- @7 ^% I( a: y
if no=PartsNo+PartsTable[2,i] then , l- q. n- Q0 f% W( c
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! B( U& T- E: T) U3 `8 l6 @, ^8 p
- |1 {5 n% W( ?7 K5 E/ K0 W end;+ [, j" `$ ]. v N$ w
i:=PartsTable.YDim+1;
+ P+ W1 u4 Q+ R end;
. k: T; B1 d' p+ d m:=m+PartsTable[2,i];
& {5 z7 p2 k! s# ?4 F* n next;: e- ^8 @' T/ Y5 G5 l C$ f D
2 f, y- q# E/ [$ w/ ]/ ^0 g Buf:=str_to_obj(sprint("BF",@._From));9 @: N! |7 a% e: J1 L
@.move(Buf);# U3 E b/ ?( C& [& ^) I9 Z: C
end; |