|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:/ z1 T% L6 q* L0 t7 z& E( W
(byref x1,y1,z1 : integer; part : object) : boolean% @5 q3 |. u& R, i2 G7 K
is3 S: K* l- H0 Q# P2 E
i,j,k,w : integer;5 R1 Q' l. @9 L, x& l0 m: K
do
( F1 A+ e' [# V% O8 T9 U: l for k := 1 to Crane.getStoreZDim loop
5 G+ c _3 J) f; T1 @6 b for i := Crane.getStoreXDim downto 1 loop
/ Y6 ~# @7 C0 \) r/ S. I for j := 1 to Crane.getStoreYDim loop% N) A1 t5 D$ d7 _/ k
if Crane.placeIsFree(i,j,k) then1 @( f' \9 i$ z+ G
x1 := i;
, W6 Z. w: g/ a y1 := j; c3 p, Q$ G7 ~4 c1 m7 b
z1 := k;, ^; s- \8 J8 F1 ` i$ v
if Crane.placeIsFree(14,1,2) then
) Y0 q. Y: t4 C1 _9 P b3 n w:=11 @: X4 @5 N( T9 L+ `5 `3 Y: g
end;
- H5 ^# M8 l' J2 K9 A return true;- r) K% D1 n6 {; i
end;
' p! J- U7 [2 ^6 N next;6 Q9 k/ n2 h+ h e
next;
m& _6 Q2 [2 I# `. p- _ next;# w9 u1 U* a- r- U" L9 c9 |! {" i4 A
return false;# r- C" L2 o$ i; O2 {3 H
end;8 w4 I8 c9 ` C5 \
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
0 ]* E) F: d' i |
|