|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
, O! z9 j# P$ H- j& g(byref x1,y1,z1 : integer; part : object) : boolean
1 S7 H. F7 q9 {, G( ~) @! ais4 o5 @2 M# a' b% n7 g: c
i,j,k,w : integer;
K% L* o0 Y2 a! L. v5 ^do. y! n7 P2 o0 B
for k := 1 to Crane.getStoreZDim loop
3 i" O+ \+ @1 K; o) h7 Y for i := Crane.getStoreXDim downto 1 loop
! o* O$ A$ g; y for j := 1 to Crane.getStoreYDim loop
9 r' H/ S+ Z+ p. Q if Crane.placeIsFree(i,j,k) then
7 w& X8 D Z) P6 \ `, C% c! x x1 := i;
7 ?4 `9 y3 K: Y8 [1 Z y1 := j;, H# G* ? A, h4 v+ [$ M+ C
z1 := k;" b; O, P- ~& J% f' ~
if Crane.placeIsFree(14,1,2) then
4 a3 i( Z& R" } w:=1" Y0 `1 ~/ c" v' [7 Q6 Z# k Q
end;
: h. ?" ~9 n/ B8 F return true;
7 `0 {5 A# U! o" ?' h6 @4 J; v end;
4 y. v) u9 Q/ W% ~ next;
4 n8 R+ ~ w/ p& _ }( o next;: X7 s# C9 \3 }# L& P, V9 ]
next;% p9 D9 v( W5 ?& p$ ~( I: ?
return false;' N3 z- g, g K2 e
end;5 p d+ F" }- M/ l4 C2 Y* s
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?1 n2 P* t3 i, B' B% O+ B4 s
|
|