|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:3 K" }3 f, N4 p S& |
(byref x1,y1,z1 : integer; part : object) : boolean! |& O; z M9 B7 x; {3 [# U
is
& l* d$ a* g5 Z r. B) K i,j,k,w : integer;
( k1 h8 g: z1 b' L' l2 odo8 y3 E# e8 g/ ]$ W0 X" ^$ p
for k := 1 to Crane.getStoreZDim loop
6 l4 w- ~) p. S1 d8 a for i := Crane.getStoreXDim downto 1 loop3 V1 {: F% }% s0 r* r3 I- o6 O
for j := 1 to Crane.getStoreYDim loop' i/ i/ s2 J0 N2 _$ U$ O
if Crane.placeIsFree(i,j,k) then
% j7 v R+ C: ]+ l# D x1 := i;
0 s: H R9 E: y3 P. r% M) k y1 := j; j4 e+ Z. H8 l' a0 |" I
z1 := k;
+ w" p; i, P9 p/ J: B if Crane.placeIsFree(14,1,2) then
5 v5 X# \7 p7 ]2 A' ~3 m! Q8 b/ | w:=10 t7 Y3 ~2 L9 \/ {" V- p
end;
' C; u' o, w, R @# Y, ^ return true;
8 c& I2 u8 ^- G1 w0 d+ R0 v, z end;
: J5 q- o- p4 O next;
/ j2 v" H# t7 t( Q0 w6 M8 R next;
% ~6 x; {- G+ Q* W# n next;! F4 Q: _$ b" J& z" d" s& `7 G. u% P
return false;1 _, |) x4 ^6 U Z U0 n2 z7 o
end;
2 P! T( M* W# e. v; l. X 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
! B3 t% b. F6 S. ~; H7 u |
|