这个例子昨天正好看了,话说那本书的例子都很不错~
, l" d& T9 Q) d" W' P; }: B不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
7 M' a* y8 J& X! B2 ~is: w" h2 I! X$ `# T. h/ `
i,no,m:integer; --定义整型: F7 B- ?+ [ g
Buf:object; --定义object' O3 R; }6 A p6 C/ D8 h
do
9 F# e% r/ w$ |) q m:=0; x* j. h, G, C# @0 m
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& r# _. |, N2 l" E; \/ n- e8 t for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 F6 C" I2 H, V& d% J Z* p
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . B' X+ T4 [4 O9 N. _. ?# z
@._From:=PartsTable[5,i];
! ]- X5 }8 E' [ u, H @._To:=PartsTable[6,i];
* i1 `8 v; f0 \% K% w2 ?, B2 o$ O. I3 J if no=PartsNo+PartsTable[2,i] then
9 X" x, V" F! A& N7 s5 I# }" b% n PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" q7 g9 J, d* g
7 x3 ]6 x& z# z3 g end;2 U/ _' D2 t7 u m4 R
i:=PartsTable.YDim+1;
( E5 n/ {$ a- O. O, ?% g end;
" u; L0 ], W! f4 G& `2 h m:=m+PartsTable[2,i];
! G; Q. {6 j2 m; Y3 x next;. T2 N x- m1 M* j" w
# {+ z" E% v h1 E, @* T1 C( f Buf:=str_to_obj(sprint("BF",@._From));+ C- d0 x" |. n6 B+ H
@.move(Buf);
2 R: W3 Z8 U% @end; |