|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: S: K) w/ p; O
(byref x1,y1,z1 : integer; part : object) : boolean
. j {% H; F" l( Wis4 X4 ~1 N. K: y' n+ b: Y
i,j,k,w : integer;
, }4 \9 Z4 y) \8 A* W- ?* \do$ h; m4 _1 i7 [3 b- t7 J9 B
for k := 1 to Crane.getStoreZDim loop
6 E" f% u# _0 l0 w5 Q for i := Crane.getStoreXDim downto 1 loop
5 G/ ?! I) I; m8 \5 U% h: w: d for j := 1 to Crane.getStoreYDim loop
# D! R8 y5 m' o% ~$ W1 f if Crane.placeIsFree(i,j,k) then
5 F0 A2 n. ^9 s. k l5 K x1 := i;
5 l9 [7 G% s2 g& x y1 := j;
( P; w' X7 l6 G! H9 I0 ~' S z1 := k;
1 f# F2 V/ f2 T* P9 k' K( e! C if Crane.placeIsFree(14,1,2) then
1 ^" c$ b( D# W. B' j. l' O w:=1
: I# t" Q; X- m5 E# F6 z0 u, L end;: `: r5 \) M2 T: J$ Y1 l
return true;
7 r; T- I: Q8 b# [7 \. [3 V* @ end;2 Z; \$ b* H, d: h
next;: K9 {6 q/ u0 z/ G3 u6 j+ i
next;
6 e; M7 U' n8 Z6 ] n next;
( V( { o7 ]! h return false;
2 d$ P9 `3 a/ k" i' D% qend; R) |3 y( i r, Y8 ?% a
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
& b4 z' ?* G. p6 m' ] |
|