|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: |+ [4 w3 j5 P% Q0 _+ k
(byref x1,y1,z1 : integer; part : object) : boolean
$ w% H! C) w* z# V+ ois
) S- q' T# |. \/ `7 E, J1 F% d0 a% a i,j,k,w : integer;
6 Q. P9 F' x) A' ~do
" L3 C h0 \1 k p9 n. J; ^: ~. V for k := 1 to Crane.getStoreZDim loop! F. o( r( H8 D( Q# q# Q: I
for i := Crane.getStoreXDim downto 1 loop# U2 j) I/ p# u* u; H" O
for j := 1 to Crane.getStoreYDim loop
( b+ p0 C& y% P; q if Crane.placeIsFree(i,j,k) then0 V: o5 b: L6 D& [3 n0 ~! h
x1 := i; k4 w7 s% z$ ^ L3 a8 Z
y1 := j;4 Y. U0 Q8 j9 S1 p9 |
z1 := k;! S( k6 A5 U! F- h. \
if Crane.placeIsFree(14,1,2) then
8 ^/ ^# | L7 A" {' l1 o/ R+ B# Y w:=1
7 s0 E: Q: h e* x' } n6 u% Y end;
; r3 F; r7 U4 _& u3 D# ^5 e return true;
3 S( r# d2 x# k end;
& p6 u7 Q% o1 ~! X. e- ?% a next;# E* k$ o a8 v7 Y1 w; ?# a4 t9 S
next;
- h; d2 T' o( B2 ]# H next; v3 c5 ^8 `' z, w. [/ A
return false;6 z- L& [/ ]4 d
end;2 i. Y2 h- u( W$ p9 Q) b
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?3 J. ^# L1 ^3 e$ S1 t. Y
|
|