|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
2 U( }4 E m# p5 m(byref x1,y1,z1 : integer; part : object) : boolean
& |3 q$ p& D( Sis
9 `, H6 L% [. x+ l i,j,k,w : integer;6 y1 ^, x8 \' v% I: f# M7 ]2 }
do. o" q9 j" o" _ k8 b8 i
for k := 1 to Crane.getStoreZDim loop: v3 w$ u7 g1 Z6 y f A6 Z1 c
for i := Crane.getStoreXDim downto 1 loop
; T: ~9 P; b$ Y, R) C* O+ g8 g for j := 1 to Crane.getStoreYDim loop
2 K) E1 r5 S4 N6 \1 ^ if Crane.placeIsFree(i,j,k) then
}# k5 r! s9 u& j' x x1 := i;0 r! k5 ^1 ^! `2 U
y1 := j;
' H5 O; y, J* l z1 := k;
8 s0 f4 G( @7 V! d5 P! q' s if Crane.placeIsFree(14,1,2) then' u# I& R4 w8 `; K4 H0 b
w:=17 K0 z ^ ?" `4 A9 }, Z B8 o
end;; m& k1 {6 q- J, ^: e/ i/ I7 v
return true;
' _' k; U; v+ W B3 ], b1 _ end;
2 R" i' v4 K1 ]1 r! p next;& p3 ?$ J+ n2 }, T6 I
next;7 M! |8 p& m6 h0 D
next;
; G6 K0 ~" }- ?" l5 O* i2 w return false;
$ g- s- C$ U/ ]0 wend;
8 m: \# A5 B' f2 W 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
y; B1 d9 G/ ^: z |
|