这个例子昨天正好看了,话说那本书的例子都很不错~0 w' {& a$ i' {8 |2 R5 f
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ i# b6 t$ t& i& m/ I* t1 Uis
6 |7 _/ O5 T: ?& v* I; b7 f i,no,m:integer; --定义整型
( U& p' i6 G& Z/ e* a Buf:object; --定义object! d. S9 X, _8 m; F
do
. G! f3 i" V& V! b! w0 J. s+ o. A m:=0;
/ Z/ v# Y9 s M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 P8 w6 J; E" i& D" L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 M7 J# j4 h+ O( x- _
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 B, w! `1 I; V8 l; G9 e @._From:=PartsTable[5,i]; # P/ O. [. ~% i
@._To:=PartsTable[6,i];/ G& E" I8 z$ T( \* [% C
if no=PartsNo+PartsTable[2,i] then
$ R7 W1 Y3 j( O/ L/ G3 g PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
$ T5 F) \0 ^/ d, Z8 I8 w' n6 B1 L: U8 S! B/ ^1 q6 b. u
end;8 |2 `0 C" ?9 Z9 c# q) ]
i:=PartsTable.YDim+1;
. t$ v. K$ M5 t/ u. Y end;
8 _3 F; K O% d m:=m+PartsTable[2,i];
+ E' {. L! N3 z- c1 P next;
% C u% B9 Y, h2 d' z% ^ 2 ~/ h5 A! ?. Q7 x' `+ E1 I$ D% ~
Buf:=str_to_obj(sprint("BF",@._From));6 Z0 |, }2 B8 J$ V( C1 ~, O
@.move(Buf);
* g& i6 E) f. h5 h# Vend; |