|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:8 g: ]1 g+ ]- F+ X
(byref x1,y1,z1 : integer; part : object) : boolean
% V; L3 q/ C' \is0 d, L: S# v3 A& O$ L/ E
i,j,k,w : integer;+ z2 d/ {$ \1 E& B2 G" u) K
do4 r# E' q6 C3 `) A! j( E: y3 m1 ^
for k := 1 to Crane.getStoreZDim loop
# f8 `& y# c! ~' y for i := Crane.getStoreXDim downto 1 loop
, t/ }9 g0 o- I1 @ for j := 1 to Crane.getStoreYDim loop: D" E: g# ^- d
if Crane.placeIsFree(i,j,k) then" ~9 Z8 W" C2 n3 J
x1 := i;6 k9 q% j4 K8 b' ]/ ~+ S
y1 := j;. F+ {. Z2 e y8 }9 y
z1 := k;
1 L$ Q4 I# t) G: j; [. `2 g& `' a, R if Crane.placeIsFree(14,1,2) then- V! L$ ~6 m: Y& L- f3 w
w:=1
& H, R3 s( R+ { end;
7 e! d% O+ S- T' A return true;
7 l/ O1 ?: X6 S3 w: T end;
8 n; m) r& e: ]; k& p; A& F( P+ \ next;
; h1 r2 T4 {- l# _# S; b( Y$ L next;+ s6 S4 z0 ]8 U* d# N
next;
, d: u8 \" A( K2 N return false;
; O6 l4 P6 z7 {1 Zend;
, h) s8 A4 z6 j; x 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?' Y' J# i8 T" [' ^# ^+ ]
|
|