perm filename NITE[1,VDS] blob
sn#069742 filedate 1973-11-01 generic text, type T, neo UTF8
00100 SPECIAL PATH,PATHLENGTH,DIM1,DIM2;
00200 EXPR PROCEED();
00300 BEGIN
00400 IF CHOICE(2)=2 THEN GO FAIL;
00500 PRINTSTR ("FIRST DIMENSION: ");
00600 DIM1←READ();
00700 PRINTSTR ("SECOND DIMENSION: ");
00800 DIM2←READ();
00900 GOALLENGTH←DIM1*DIM2;
01000 PRINTSTR ("STARTING SQUARE: ");
01100 PATH←<READ()>;
01200 PATHLENGTH←1;
01300 A; MOVE(CHOICE(2),2*CHOICE(2)-3,2*CHOICE(2)-3,CAAR PATH,
01400 CDAR PATH);
01500 IF PATHLENGTH = GOALLENGTH THEN GO SUCCEED
01600 ELSE GO A;
01700 FAIL; RETURN "NO PATH EXISTS";
01800 SUCCEED; PRINTSTR ("PATH FOUND: ");
01900 RETURN REVERSE(PATH);
02000 END;
02100
02200 EXPR MOVE(X,Y,Z,M,N);
02300 BEGIN
02400 IF X=1 THEN INC1←1 ALSO INC2←2
02500 ELSE INC1←2 ALSO INC2←1;
02600 R←M+INC1*Y;
02700 S←N+INC2*Z;
02800 IF MEMBER (R CONS S,PATH) OR OFFBOARD (R,S) THEN FAILURE()
03000 ELSE PATHLENGTH←PATHLENGTH+1 ALSO PATH←(R CONS S) CONS PATH;
03100 END;
03200
03300 EXPR OFFBOARD (M,N);
03400 IF M GREATERP DIM1 OR M LESSP 1 OR N GREATERP DIM2
03500 OR N LESSP 1 THEN T;
03600
03700 EXPR CHOICE(N);
03800 SELECT I FROM I:1 SUCCESSOR I+1
03900 UNLESS I GREATERP N FINALLY FAILURE();
04000 _EOF_