|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:# J4 n4 B( `9 m
(byref x1,y1,z1 : integer; part : object) : boolean
* b1 M. T& L0 {" z1 f6 n& [: his
5 @- y$ m/ ~: B- C! j i,j,k,w : integer;
[( G0 q, @5 gdo9 b" O f, h: ^, H
for k := 1 to Crane.getStoreZDim loop9 N- e0 F0 \5 D# R- n1 q
for i := Crane.getStoreXDim downto 1 loop
7 r" }. f1 g4 S# L for j := 1 to Crane.getStoreYDim loop7 i' U8 `- B- v+ v2 K6 C
if Crane.placeIsFree(i,j,k) then9 X4 S$ {+ s# R" R9 F/ n# }/ |9 h4 @7 x
x1 := i;
b/ q: c. r5 w- R/ v# |0 U y1 := j;
, B5 Y1 y3 R; J, v, c1 o( F: g z1 := k;) t8 E5 Y4 P$ v3 p
if Crane.placeIsFree(14,1,2) then+ ]1 p/ S+ b5 P9 x: `
w:=1
. t6 `" r. d; I+ S0 O/ A end;6 e$ u' |5 c: M/ ~# j* a8 @
return true;. K& o6 ~* h& b1 A; W" j- O& l" U
end;
3 E8 X8 B8 {4 E- x1 k+ L9 E- W8 W next;
0 k# }/ S( w" u% R next;/ e: Z- v/ B9 h) M/ F) A
next;; v4 g' C- d( y7 L/ P
return false;
3 R; E& U7 Q' Y' B r8 fend;7 \# ]" I/ u. V- G* r5 W
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
M8 `* |5 j1 ]/ i g, k/ q- y |
|