Listing of file='MAZE.BAS;01' on disk='vmedia/chip_90-sector.ccvf'
0 POKE 33278,0 1 PLOT 6,4,12,11,14 2 PRINT "MAZE.":PRINT 3 PRINT "DO YOU NEED INSTRUCTIONS?"; 4 I= RND (1):I= PEEK (33278):IF I= 0THEN 4 5 INPUT "";A$:IF I= 89THEN 2000 10 PRINT :INPUT "INPUT HEIGHT, WIDTH: ";L,W 12 L= INT (L):IF L< 1THEN L= 1 13 IF L> 27THEN L= 27 14 W= INT (W- 1):IF W< 0THEN W= 0 15 IF W> 61THEN W= 61 20 PLOT 15,30,12,6,36 30 DIM P(W),R(W),PP(W),PS(W),PO(W):PRINT " "; 40 FOR I= 0TO W:PRINT ""; 50 PS(I)= I 60 NEXT I 70 FOR I= 1TO L 80 IF I> 1THEN PRINT "b"; 90 FOR J= 0TO W 100 IF J= 0THEN 460 110 IF R(J- 1)= 0OR R(J- 1)= 2THEN 460 120 PO(P(J- 1))= PO(P(J- 1))- 1 130 IF R(J)= 0OR R(J)= 1THEN 450 140 PO(P(J))= PO(P(J))- 1 150 K= P(J) 160 IF K= P(J- 1)THEN 200 170 K= PP(K):IF K< > P(J)THEN 160 180 M= PP(P(J- 1)):PP(P(J- 1))= PP(P(J)):PP(P(J))= M 190 K= P(J- 1):GOTO 230 200 IF RND (1)> .5THEN 220 210 R(J)= R(J)- 2:K= P(J):P(J)= P(J- 1):GOTO 230 220 R(J- 1)= R(J- 1)- 1:K= P(J- 1) 230 IF PO(K)> 0THEN 280 235 IF P(J)= KTHEN 280 240 PC= PC- 1:PS(PC)= K 250 M= PP(K) 260 IF PP(M)< > KTHEN M= PP(M):GOTO 260 270 PP(M)= PP(K) 280 K= P(J) 290 IF PO(K)> 0THEN 420 300 K= PP(K):IF K< > P(J)THEN 290 310 IF I= LTHEN EC= 1:GOTO 430 320 IF J= WTHEN EC= 2:GOTO 340 330 EC= INT (RND (1)* 3)+ 1 340 IF I= 1THEN 370 350 IF I= LAND EC> 1THEN EC= EC- 2 360 GOSUB 1000 370 PO(P(J))= PO(P(J))+ EC- INT (EC/ 2) 371 IF PO(P(J))> 0THEN 380 373 PC= PC- 1:PS(PC)= P(J) 375 M= PP(P(J)) 377 IF PP(M)< > P(J)THEN M= PP(M):GOTO 377 379 PP(M)= PP(P(J)) 380 R(J)= EC 390 NEXT J:PRINT :NEXT I:PRINT "b"; 400 FOR J= 0TO W:GOSUB 1000:NEXT J:PRINT 411 GOTO 1500 420 EC= INT (RND (1)* 4) 430 IF J= WAND EC< > 0AND EC< > 2THEN EC= EC- 1 440 GOTO 340 450 P(J)= P(J- 1):GOTO 280 460 IF R(J)= 0OR R(J)= 1THEN 480 470 PO(P(J))= PO(P(J))- 1:GOTO 280 480 P(J)= PS(PC):PC= PC+ 1:PP(P(J))= P(J):GOTO 280 1000 ON R(J)+ 1GOTO 1010,1020,1030,1040 1010 PRINT "m";:RETURN 1020 PRINT "";:RETURN 1030 PRINT "b";:RETURN 1040 PRINT " ";:RETURN 1500 PLOT 3,W+ 1,L+ 1,6,4 1502 PLOT 3,0,L+ 3:INPUT "PRESS 'ENTER' WHEN READY: ";A$ 1504 PLOT 28,11 1510 FOR I= L- 1TO - 1STEP - 1 1520 FOR J= 1TO 2* W+ 3STEP 2 1530 POKE 24704+ 128* I+ J,4 1540 NEXT J 1550 NEXT I 1560 P= 24707 1570 G= 24705+ 2* (W+ 1)+ 128* (L- 1) 1575 POKE 33210,0:POKE 33209,0 1576 PLOT 3,64,0,27,13 1580 POKE P,12 1590 POKE 33278,0 1600 I= PEEK (33278):IF I= 0THEN 1600 1610 IF I= 25THEN 1660 1620 IF I= 28THEN 1680 1630 IF I= 26THEN 1700 1640 IF I= 8THEN 1720 1650 GOTO 1600 1660 IF PEEK (P- 1)= 2OR PEEK (P- 1)= 13THEN 1590 1670 NP= P+ 2:GOTO 1740 1680 IF PEEK (P- 129)= 13OR PEEK (P- 129)= 31THEN 1590 1690 NP= P- 128:GOTO 1740 1700 IF PEEK (P- 3)= 2OR PEEK (P- 3)= 13THEN 1590 1710 NP= P- 2:GOTO 1740 1720 IF PEEK (P- 1)= 13OR PEEK (P- 1)= 31THEN 1590 1730 NP= P+ 128 1740 IF NP= GTHEN 1780 1750 IF PEEK (NP)= 12THEN POKE P,4 1760 P= NP:GOTO 1580 1780 POKE G,20 1790 POKE 33265,0 1800 PLOT 3,0,L+ 3:PRINT "TIME =";PEEK (33210)* 60+ PEEK (33209); 1810 INPUT " SECONDS. PLAY AGAIN? ";A$ 1820 IF LEFT$ (A$,1)= "Y"THEN CLEAR :GOTO 10 1830 PLOT 1 2000 PLOT 12,14 2010 PRINT " THIS PROGRAM CREATES A MAZE, AND THEN LETS YOU SOLVE IT." 2020 PRINT 2025 PRINT " "; 2030 PRINT "YOU INPUT THE DIMENSIONS OF THE MAZE, THE COMPUTER CREATES" 2040 PRINT "IT, AND THEN YOU TRY TO MOVE FROM THE UPPER LEFT CORNER TO THE" 2050 PRINT "LOWER RIGHT CORNER. MOVE LEFT, RIGHT, AND UP BY PRESSING THE" 2060 PRINT "APPROPRIATE CURSOR CONTROL (GRAY) KEYS. MOVE DOWN BY PRESSING" 2070 PRINT "THE 'HOME' KEY. DO NOT PRESS THE CURSOR DOWN KEY. IF YOU DO," 2080 PRINT "YOU MUST PRESS 'CPU RESET', AND THEN 'ESC E' TO GET BACK TO" 2090 PRINT "BASIC." 2100 PRINT :INPUT " PRESS 'ENTER' FOR YOUR FIRST MAZE. ";A$ 2110 GOTO 10