|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
" [0 o$ k7 ^8 j; D+ r4 [(byref x1,y1,z1 : integer; part : object) : boolean& _) ^: B& `/ {8 r- \
is; ^7 h1 g' S/ Y/ x( }
i,j,k,w : integer;' y, P# t% D0 O
do9 A( r0 s! _0 q0 C4 [ q6 ~
for k := 1 to Crane.getStoreZDim loop) z G7 J4 G# R2 z$ _8 {
for i := Crane.getStoreXDim downto 1 loop3 h- n z$ o. N
for j := 1 to Crane.getStoreYDim loop$ }+ ~6 u9 r, n2 M1 I& X
if Crane.placeIsFree(i,j,k) then5 P# X% l$ y$ l6 l4 r
x1 := i;
- @4 D6 `& ^2 z8 h1 Y+ \ y1 := j;, U7 j) l& m8 `; D( u6 n
z1 := k;6 U2 ?) x7 t5 j. E. E z- h, y
if Crane.placeIsFree(14,1,2) then4 e R* K! t+ _& Z( c& q* C
w:=1
/ V# H: T `' V1 ]% H5 K* G" F end;. }* z) F4 V2 B& `0 p4 T( o* U# ^ s
return true;
- \6 a. Q4 j% a; ?% w5 B: H G: n7 N end;, s4 C$ y) j6 k
next;7 w& o, P$ c8 U k+ r
next;
9 i! u7 D0 s4 o) U% w next;
3 @/ A: A% o% ]% ] return false;
( O% o1 ~% @$ {% v, a# `" {- cend;
9 G [* H! ?+ P+ c: G# j 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?; K8 p- B. ?/ s6 R
|
|