|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
6 r/ N5 G( f, a2 G8 v, G. B(byref x1,y1,z1 : integer; part : object) : boolean* h+ Z# l; v* F9 d
is
5 ?# V$ q, a% M) s% S i,j,k,w : integer;
: j) d Z% p1 ^: z* L0 Ddo
- S6 \/ F$ ?( y7 {) X# A3 y, b for k := 1 to Crane.getStoreZDim loop% t: n* F0 O$ y5 Q; Q, T* l6 S' Q! T
for i := Crane.getStoreXDim downto 1 loop
; \2 W% t) ~4 @0 i1 P& P; r for j := 1 to Crane.getStoreYDim loop' e7 S+ v, g1 P8 N6 o Z p
if Crane.placeIsFree(i,j,k) then% n; y/ V5 ?5 H5 ^5 }- B2 d
x1 := i;# V0 P5 m4 H: P4 I6 Y
y1 := j;
0 `0 g. @4 c3 |/ W z1 := k;
# [ u+ i# i4 \. p* `9 e9 |* ? if Crane.placeIsFree(14,1,2) then
+ X: x* r0 v Q [1 p( O w:=1
. W5 g& Q+ h$ ^0 Z; u2 ]! Q0 _- t" q, G/ g end;. S# Z) d# a. h, j& `; q2 ~
return true;
4 [- [; U& W7 `! g end;
3 J4 I' E- @/ v3 n0 G5 e next;, @" ^. U9 N2 j
next;
7 V3 y! |0 J& L. C$ _; t: ? next;# N: |2 z1 a! S; `8 \# r7 M
return false;
4 P1 v0 ]$ \" p. s7 _end;" _% S# }6 }+ Z5 \6 Q3 u
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?* Y O- B& K/ K- K
|
|