|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:6 @' h* w% h+ K' j/ p$ q! e1 D0 U4 B
(byref x1,y1,z1 : integer; part : object) : boolean3 k# H4 D$ ?: j: {4 t& q; X2 T
is/ W% j3 ?6 C: D. r0 x
i,j,k,w : integer;
( p4 y# H! f% `6 ado' k' m( R4 `0 I( ~5 k# N
for k := 1 to Crane.getStoreZDim loop
/ M& m; Z$ l' B B for i := Crane.getStoreXDim downto 1 loop+ y% r1 l' K$ o6 c9 b( b
for j := 1 to Crane.getStoreYDim loop
$ Q9 ~9 i! X# F }& C: u \; m if Crane.placeIsFree(i,j,k) then/ I8 J1 M- W* C8 s% ?* f3 V4 d
x1 := i;
4 f# v, u; D' ?5 x# z y1 := j;
3 a7 X7 z$ e. d B! g z1 := k;* a. R6 @6 \0 N9 A$ g
if Crane.placeIsFree(14,1,2) then. `, D6 n* H) Q6 r. i; F
w:=1 K0 a1 k3 r0 X
end;8 \/ \" N8 k0 V' L6 Z6 |& `; T
return true;
+ C7 |5 L* B, V1 w! v. @ end;: ?, k) x/ R1 v( U
next;
% S3 g; }2 M4 m$ [& x! M) R. M7 [4 E next;
) K8 {$ S3 r' V. |6 S, E# d+ ?# W next;
( o% s: `7 W0 O# E& k. a return false;
$ o) y2 E D! ?, H _! `9 pend;+ s+ ?4 Q- M/ a
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
: V9 J/ `' A7 `6 C4 {! j0 x9 h |
|