|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:8 X4 t9 B z& b1 n! }
(byref x1,y1,z1 : integer; part : object) : boolean, |% p* Q( Y+ L+ I
is. O/ J) e* [! r# A% j
i,j,k,w : integer;
2 J& S" S1 p! V) }6 Z; G& f; jdo6 O" M4 V, J( S, u; c: R
for k := 1 to Crane.getStoreZDim loop
7 X$ S3 Z5 q/ w5 i( U for i := Crane.getStoreXDim downto 1 loop
! U/ \1 {. u) \; @ for j := 1 to Crane.getStoreYDim loop
1 ^9 {0 P. a6 f0 q. H" o if Crane.placeIsFree(i,j,k) then
4 H9 ?4 R$ C5 p t) {- B x1 := i;
% W5 [- o7 K( J# H4 l3 a y1 := j;: s" F; S, e9 P3 Y, z) T$ s
z1 := k;0 `8 {9 a5 x+ U! A$ H
if Crane.placeIsFree(14,1,2) then: s) p$ K& t4 k1 Y
w:=1
' y* J2 m5 _; o; D. T end;
- {0 f7 K6 s. h m return true;
, L4 w# B2 M- U# i2 i end;
$ p: G# S% b0 J next;
8 U4 Z4 q' a/ @9 P/ _( \9 o$ w next;: \4 S: S4 D- k8 p9 X, W* h
next;
: {8 q7 Y- Z. c$ V return false;
0 s4 |( r, I9 n# Tend;
+ b, P9 E0 t" b; y0 @. y" e$ f1 c 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
0 w5 V' C. t+ h P% l: M% c |
|