Appears on
Assembled by Tim Ward from many sources. Contains programs 10211 – 10251.
Source Code
1 REM "3-D ESCAP%E" 10 GOSUB 3000 20 POKE 16418,0 30 LET X1=1 40 PRINT AT 10,0;"% % %P%R%E%S%S% %A% %M%O%V%E%M%E%N%T% %K%E%Y% %T%O% %S%T%A%R%T" 290 LET A$=INKEY$ 293 IF A$="F" AND M$(X+X1)="0" THEN LET X=X+X1 294 IF A$="T" THEN LET X1=-X1 295 IF A$="L" THEN LET X1=(X1=12)+(-1*(X1=-12))+(-12*(X1=1))+(12*(X1=-1)) 297 IF A$="R" THEN LET X1=(X1=-12)+(-1*(X1=12))+(-12*(X1=-1))+(12*(X1=1)) 299 IF A$="F" OR A$="T" OR A$="L" OR A$="R" THEN GOTO 315 310 GOTO 290 317 LET D=2*X1 320 CLS 330 IF X=EX THEN GOTO 600 340 PRINT AT 23,0;"%O%X%Y%G%E%N% % ";O$( TO O);" " 360 IF M$(X+X1)="1" THEN PRINT AT 1,0;W$ 370 IF M$(X+X1)="1" THEN GOTO 290 380 IF M$(X+(X1=12)+(-1*(X1=-12))+(-12*(X1=1))+(12*(X1=-1)))="1" THEN PRINT AT 1,0;"\ :\:.";AT 2,0;"\ :% \:.";AT 3,0;"\ :% % \:.";AT 4,0;"\ :% % % \:.";AT 5,0;"\ :% % % % \:.";AT 6,0;"\ :% % % % % \:.";AT 7,0;"\ :% % % % % % ";AT 8,0;"\ :% % % % % % ";AT 9,0;"\ :% % % % % % ";AT 10,0;"\ :% % % % % % % ";AT 11,0;"\ :% % % % % % ";AT 12,0;"\ :% % % % % % ";AT 13,0;"\ :% % % % % % ";AT 14,0;"\ :% % % % % % ";AT 15,0;"\ :% % % % % % ";AT 16,0;"\ :% % % % % \:'";AT 17,0;"\ :% % % % \:'";AT 18,0;"\ :% % % \:'";AT 19,0;"\ :% % % \:'";AT 20,0;"\ :% \:'";AT 21,0;"\ :\:'" 390 IF M$(X+(X1+(X1=12)+(-1*(X1=-12))+(-12*(X1=1))+(12*(X1=-1))))="1" THEN PRINT AT 7,7;"\:.";AT 8,7;"% \:.";AT 9,7;"% % \:.";AT 10,7;"% % % ";AT 11,7;"% % % ";AT 12,7;"% % % ";AT 13,7;"% % \:'";4,7;"% \:'";AT 15,7;"\:'" 400 IF M$(X+D)="1" THEN PRINT AT 10,10;"% % % ";AT 11,10;"% % % ";AT 12,10;"% % % " 410 IF M$(X+(X1+(X1=-12)+(-1*(X1=12))+(-12*(X1=-1))+(12*(X1=1))))="1" THEN PRINT AT 7,15;"\.:";AT 8,14;"\.:% ";AT 9,13;"\.:% % ";AT 10,13;"% % % ";AT 11,13;"% % % ";AT 12,13;"% % % ";AT 13,13;"\':% % ";AT 14,14;"\':% ";AT 15,15;"\':" 420 IF M$(X+(X1=-12)+(-1*(X1=12))+(12*(X1=1))+(-12*(X1=-1)))="1" THEN PRINT AT 1,21;"\.:\: ";AT 2,20;"\.:% \: ";AT 3,19;"\.:% % \: ";AT 4,18;"\.:% % % \: ";AT 5,17;"\.:% % % % \: ";AT 6,16;"\.:% % % % \: ";AT 7,16;"% % % % % % \: ";AT 8,16;"% % % % % % \: ";AT 9,16;"% % % % % % \: ";AT 10,16;"% % % % % % \: ";AT 11,16;"% % % % % % \: ";AT 12,16;"% % % % % % \: ";AT 13,16;"% % % % % % \: ";AT 14,16;"% % % % % % \: ";AT 15,16;"% % % % % % \: ";AT 16,16;"\':% % % % % \: ";AT 17,17;"\':% % % % \: ";AT 18,18;"\':% % % \: ";AT 19,19;"\':% % \: ";AT 20,20;"\':% \: ";AT 21,21;"\':\: " 430 IF M$(X+(X1=12)+(-1*(X1=-12))+(-12*(X1=1))+(12*(X1=-1)))="0" THEN PRINT AT 7,0;"\##\##\##\##\##\##\##";AT 8,0;"\##\##\##\##\##\##\##";AT 9,0;"\##\##\##\##\##\##";AT 10,0;"\##\##\##\##\##\##\##";AT 11,0;"\##\##\##\##\##\##\##";AT 12,0;"\##\##\##\##\##\##\##";AT 13,0;"\##\##\##\##\##\##\##";AT 14,0;"\##\##\##\##\##\##\##";AT 15,0;"\##\##\##\##\##\##\##" 440 IF M$(X+(X1+(X1=12)+(-1*(X1=-12))+(-12*(X1=1))+(12*(X1=-1))))="0" THEN PRINT AT 9,7;"\,,\,,\,,";AT 13,7;"\''\''\''";AT 10,7;"\##\##\##";AT 11,7;"\##\##\##";AT 12,7;"\##\##\##" 450 IF M$(X+D)="0" THEN PRINT AT 10,10;"\:. \.:";AT 11,10;"% % % ";AT 12,10;"\:' \':" 460 IF M$(X+(X1+(X1=-12)+(-1*(X1=12))+(-12*(X1=-1))+(12*(X1=1))))="0" THEN PRINT AT 9,13;"\,,\,,\,,";AT 13,13;"\''\''\''";AT 10,13;"\##\##\##";AT 11,16;"\##\##\##";AT 12,13;"\##\##\##" 470 IF M$(X+(X1=-12)+(-1*(X1=12))+(-12*(X1=-1))+(12*(X1=1)))="0" THEN PRINT AT 7,16;"\##\##\##\##\##\##\##";AT 8,16;"\##\##\##\##\##\##\##";AT 9,16;"\##\##\##\##\##\##\##";AT 10,16;"\##\##\##\##\##\##\##";AT 11,16;"\##\##\##\##\##\##\##";AT 12,16;"\##\##\##\##\##\##\##";AT 13,16;"\##\##\##\##\##\##\##";AT 14,16;"\##\##\##\##\##\##\##";AT 15,16;"\##\##\##\##\##\##\##" 480 LET O=O-.5 490 IF INT O<0 THEN GOTO 1500 510 IF X+D=EX OR X+X1=EX AND M$(X+X1)="0" THEN PRINT AT 11,11;"%E" 540 GOTO 290 600 CLS 610 PRINT "%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*" 620 FOR A=1 TO 19 630 PRINT "%*% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %*" 640 NEXT A 650 PRINT "%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*" 660 FOR A=2 TO 7 670 PRINT AT A,2;" " 680 NEXT A 690 PRINT AT 8,3;" % ";AT 7,4;" " 700 FOR A=2 TO 7 710 PRINT AT A,8;" " 720 NEXT A 730 FOR A=2 TO 8 740 PRINT AT A,8;" " 750 NEXT A 760 PRINT AT 2,9;" ";AT 5,9;" ";AT 8,9;" " 770 FOR A=2 TO 8 780 PRINT AT A,12;" " 790 NEXT A 800 PRINT AT 8,13;" " 810 FOR A=2 TO 8 820 PRINT AT A,16;" " 830 NEXT A 840 PRINT AT 8,17;" " 850 FOR A=11 TO 17 860 PRINT AT A,2;" " 870 NEXT A 880 PRINT AT 11,3;" ";AT 12,5;" ";AT 13,6;" ";AT 14,6;" ";AT 15,6;" ";AT 16,5;" ";AT 17,3;" " 890 FOR A=12 TO 16 900 PRINT AT A,8;"\ :% % \: " 910 NEXT A 920 PRINT AT 11,9;" ";AT 17,9;" " 930 FOR A=11 TO 17 940 PRINT AT A,14;" % % % " 950 NEXT A 960 PRINT AT 12,15;" ";AT 13,16;" ";AT 14,17;" " 970 FOR A=11 TO 17 980 PRINT AT A,20;" " 990 NEXT A 1000 PRINT AT 11,21;" ";AT 14,21;" ";AT 17,21;" " 1010 FOR A=11 TO 16 1020 PRINT AT 2,25;" " 1030 NEXT A 1040 PRINT AT 17,25;"%O";AT 16,25;"\.." 1050 PRINT AT 3,20;"%Y%O%U% %E%S%C%A%P%E%D";AT 5,20;"%Y%O%U% %H%A%D%:";INT O;AT 7,20;"%O%X%Y%G%E%N";AT 9,20;"%U%N%I%T%S% %L%E%F%T%." 1055 PRINT AT 19,4;"%P%R%E%S%S% %A%N%Y% %K%E%Y% %F%O%R% %R%E%P%L%A%Y" 1060 IF INKEY$="" THEN GOTO 1060 1070 CLS 1080 RUN 1500 CLS 1510 FOR A=1 TO 22 1520 PRINT "% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % " 1530 NEXT A 1535 PRINT AT 3,10;"%O%X%Y%G%E%N% %G%A%U%G%E" 1540 PRINT AT 5,1;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.." 1550 PRINT AT 12,1;"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''" 1560 FOR A=6 TO 11 1570 PRINT AT A,1;"\ : % % % % % % % % % % % % % % % % \: " 1580 NEXT A 1590 PRINT AT 13,1;"%0";AT 13,14;"%1%0";AT 13,28;"%2%0" 1600 FOR A=12 TO 2 STEP -1 1610 PRINT AT 6,A;"% ";AT 7,A;"% ";AT 8,A;"% ";AT 9,A;"% ";AT 10,A;"% ";AT 11,A;"% " 1620 NEXT A 1630 FOR A=6 TO 11 1640 PRINT AT A,3;" % % % % % % % % % % % % % " 1650 NEXT A 1670 PRINT AT 6,4;" ";AT 8,4;" ";AT 11,4;" " 1680 PRINT AT 7,8;" % ";AT 8,9;" " 1690 PRINT AT 6,13;" ";AT 7,16;" ";AT 8,16;" ";AT 9,14;" " 1700 PRINT AT 6,18;" % % % " 1710 PRINT AT 17,25;" " 1720 FOR A=8 TO 11 1730 PRINT AT A,25;"\: \ :" 1740 NEXT A 1750 PRINT AT 18,3;"%P%R%E%S%S% %A%N%Y% %K%E%Y% %F%O%R% %R%E%P%L%A%Y" 1760 IF INKEY$="" THEN GOTO 1760 1770 CLS 1780 RUN 3000 PRINT "%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*" 3010 FOR A=1 TO 19 3020 PRINT "%*% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %*" 3030 NEXT A 3035 PRINT "%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*" 3040 FOR A=1 TO 8 3050 PRINT AT A,2;" " 3060 NEXT A 3070 PRINT AT 1,2;" ";AT 4,2;" ";AT 8,2;" " 3080 PRINT AT 2,7;" ";AT 4,7;" ";AT 7,7;" ";AT 3,6;" ";AT 5,10;" ";AT 6,10;" " 3090 FOR A=3 TO 6 3100 PRINT AT A,12;" " 3110 NEXT A 3120 PRINT AT 3,13;" ";AT 6,13;" " 3130 PRINT AT 4,17;"\: % % \ :";AT 5,17;"\: \..\..\ :";AT 6,17;"\:.% % \.:";AT 3,18;"\''\''" 3140 PRINT AT 4,22;"\ .\. ";AT 5,22;"\..\..";AT 5,22;"\ ." 3150 PRINT AT 4,25;"%E" 3160 PRINT AT 11,10;"%I%N%S%T%R%U%C%T%I%O%N%S" 3170 PRINT AT 11,10;"\..\..\..\..\..\..\..\..\..\..\..\.." 3180 PRINT AT 14,2;"%Y%O%U% %A%R%E% %T%R%A%P%P%E%D% %I%N% %A% %C%O%M%P%L%E%X" 3190 PRINT AT 15,1;"%M%A%Z%E%.%A%L%L% %Y%O%U% %H%A%V%E% %T%O% %D%O% %I%S" 3200 PRINT AT 16,1;"%E%S%C%A%P%E%.%U%S%E% %-%:% %F%-%F%O%R%W%A%R%D" 3210 PRINT AT 17,15;"%T%-%T%U%R%N% %A%R%O%U%N%D" 3220 PRINT AT 18,15;"%L%-%T%U%R%N% %L%E%F%T" 3230 PRINT AT 19,15;"%R%-%T%U%R%N% %R%I%G%H%T" 3240 LET I$="PRESS ANY KEY TO START THE GAME " 3241 LET I$=I$(2 TO )+I$(1) 3242 PRINT AT 21,0;I$ 3250 IF INKEY$="" THEN GOTO 3241 3260 CLS 3300 LET R=INT (RND*3)+1 3310 IF R=1 THEN LET M$="111111111111110001000001110111011101100010000001111000111101100010010001111111010111100000000011101010101001100010101101101000000001111111111111" 3320 IF R=2 THEN LET M$="111111111111101000001001101011011101100000000001111101010101100001011001101100000011101110111011100000000001101111010111101000000001111111111111" 3330 IF R=3 THEN LET M$="111111111111100001000001111101010101100000000101101010111101100010000001101000101111111011100011100001001001111101101101100000000001111111111111" 3450 LET O$="\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :\ :" 3460 LET O=20 3470 LET X=INT (RND*132)+1 3480 IF M$(X)<>"0" THEN GOTO 3470 3490 LET EX=INT (RND*132)+1 3500 IF M$(EX)<>"0" THEN GOTO 3470 3510 IF X=EX OR X+3=EX OR X-3=EX OR X+12=EX OR X-12=EX THEN GOTO 3470 3520 LET W$="\'. \.' " 3540 FOR P=1 TO 19 3550 LET W$=W$+" % % % % % % % % % % % % % % % % % % % % % % " 3560 NEXT P 3570 LET W$=W$+"\.' \'." 3750 RETURN 3760 CLEAR 3766 SAVE "1025%1" 3770 RUN