|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
( }5 F/ e7 D7 n0 q6 g$ A(byref x1,y1,z1 : integer; part : object) : boolean# V* ~5 |7 k6 F' O& E
is; p+ I! J7 k! q7 ~# \' e
i,j,k,w : integer;# H! i' R# Z5 T) g3 r6 z) J, @
do# P9 s- L$ l4 T! |* ]9 e) T+ P
for k := 1 to Crane.getStoreZDim loop
, ]) I g. _9 a5 x3 V D% ^( i for i := Crane.getStoreXDim downto 1 loop
1 \: q# v/ {$ E9 \ for j := 1 to Crane.getStoreYDim loop
1 J: ?8 G/ @: `7 k5 u" U if Crane.placeIsFree(i,j,k) then' W, D ?5 {! q) p+ i( w+ b
x1 := i;5 i) i+ y9 D: F" L
y1 := j;
/ X+ ?4 y4 G" B/ a8 Q z1 := k;/ ?5 w/ U+ r% @3 B
if Crane.placeIsFree(14,1,2) then& t8 y) }6 N3 m) Y+ L
w:=1
( }1 M0 K5 V) }' d' [/ H+ O s end;- o3 z/ R5 u8 m" ]3 a" f
return true;
7 _% E( Z4 I* }, s0 e; x, X) c end;/ T( Q+ l6 N( l' E9 t2 O
next;+ |/ f1 u& b* I9 ^# H# h
next;$ {# m @+ Z: z
next;& C) N5 H8 ?6 {2 L0 s% h) Q5 y: V
return false;
6 l0 _: g* a- H5 Iend;
+ R' ?( J- t" E2 ]/ P; v. z+ E- _5 V 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
9 N0 P% a, z ?* I# T# e |
|