|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:6 M: ^& q7 T( r& d
(byref x1,y1,z1 : integer; part : object) : boolean3 a5 u! S2 x: ?4 E, F
is+ X \3 Q( x, m5 ?$ U- n
i,j,k,w : integer;/ m# _3 U- E6 q; a4 {9 o& ^- R2 {8 m
do% D7 }, K" @1 D1 Z) n; U4 B4 S& \
for k := 1 to Crane.getStoreZDim loop: V2 q5 N& `4 Z2 E9 [
for i := Crane.getStoreXDim downto 1 loop( g3 V5 n& @" M0 Y% l# |3 B
for j := 1 to Crane.getStoreYDim loop- s; r% R# y6 {2 X; E; ?6 P8 g* {
if Crane.placeIsFree(i,j,k) then
" r; N! c/ Q2 C; E, l x1 := i;, C2 Y' v2 ?% ~0 e+ @" \+ o2 `
y1 := j;$ t/ e' z4 X' ~: F' g1 Y3 M6 Q" E# U
z1 := k;
7 i p5 ? Y5 W/ t4 {0 o if Crane.placeIsFree(14,1,2) then/ [/ K; m8 q) M3 ]- T
w:=12 I+ N7 F: e$ r* k$ E2 o) B, |
end;
8 Y" C" {; E1 i$ {: `. W1 h! C3 } return true;: d6 @) k$ \: x2 u8 j& C w, a) }
end;
- b# e2 {/ F- c next;
- l0 x* K8 P* N next;5 C& W. c, L% U% M4 k9 n$ m" `. g
next;! W1 [0 P: S: E4 T$ ?
return false;# A Z! o5 S- r4 @# }: b
end;
0 L9 [- v+ t: T; e: I4 \ 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?2 M4 X* {! V5 R/ J/ B# H
|
|