这个例子昨天正好看了,话说那本书的例子都很不错~- ?( n/ z+ i1 Q) [
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 a" i* ^ @4 G) {1 P9 @
is
% f$ {0 M4 D; O H, U- K9 M! U i,no,m:integer; --定义整型+ u& Q; A9 v' M$ T( G, K, Z
Buf:object; --定义object
! e0 f) Y% \% j7 A3 W# F% Wdo
" O2 \1 w* w6 W* C m:=0;
8 U7 E( h ~; i W, e& q6 } no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 Q7 l* \+ w" H3 A4 m+ h$ H/ T0 z6 ` for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 a8 c5 X& g! _2 e5 q+ U# e& }/ p# g4 Z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( Y; n6 s! b: n' j2 _+ J
@._From:=PartsTable[5,i]; ) S0 o5 L3 T; e) i' I
@._To:=PartsTable[6,i];: v' Q3 l. B- Y, a N$ \" ^- B' c# S9 b
if no=PartsNo+PartsTable[2,i] then / n! r- d, F7 G |, X0 j' ~' V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 I# \; z8 u& L' p) [3 U' V% \: e. }6 n5 @ |8 ]
end;
! e9 h1 [- h2 S$ t i:=PartsTable.YDim+1;
, l* k: s% \* j; U& L8 b end;7 W0 _# t% {. l& U8 N' ~
m:=m+PartsTable[2,i];; ~0 u. j h* T) j% |
next;
0 @: f2 ^: Q* u; y) u! B 1 z/ d: g9 O* e# f$ l
Buf:=str_to_obj(sprint("BF",@._From));# @9 A2 F' k) Q( S
@.move(Buf);
- Y# ^5 w6 o- }" send; |