|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:. l6 a6 H, p) _- P. \* m
(byref x1,y1,z1 : integer; part : object) : boolean7 l( Y" r6 Q% l; x# l
is
6 `( m! ^& U9 w5 V) m$ W; o2 [ i,j,k,w : integer;! F: |/ A/ \. E4 M8 P( @. w8 L
do
- R& [3 T6 C# ~ A for k := 1 to Crane.getStoreZDim loop* Q0 z3 A1 v3 h
for i := Crane.getStoreXDim downto 1 loop
( ]: m4 v- Q' X% L* r, i for j := 1 to Crane.getStoreYDim loop) T6 C$ {4 v6 l- H# a# U
if Crane.placeIsFree(i,j,k) then- F( N) x& L: o3 W
x1 := i;; ]' i# J: U1 R7 N% t1 b
y1 := j;& c5 q. Q8 K- s4 h- r% }! t: V9 }/ o
z1 := k;6 P1 r0 J& ^2 {, O( s4 N% N
if Crane.placeIsFree(14,1,2) then
( D0 k$ j% z# \7 e7 \9 y w:=1; B9 E, R$ b$ Y; _$ H S T
end;
; k7 d. s# j. W& F return true; d: K) Q6 \4 x& t
end;& x* ? u$ N! @: Y( Y
next;
* D/ W t1 a+ E/ F* d9 @8 ~/ Y next;, y: E+ n% q5 V) U5 N, {" w2 M
next;8 B. u0 I' l8 L
return false;' N5 t8 k2 P" V: W
end;
0 p6 d6 V1 Z0 W 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; w- D6 m' v& u$ ] |
|