0 PR#0 10 DIM PP(16),NU(16) 20 POKE - 16368,0 30 TEXT : HOME : VTAB 4: HTAB 14: PRINT "THE PUZZLER" 40 VTAB 15: HTAB 12: PRINT "BY GREGG BUNTIN" 50 FOR I = 1 TO 2000: NEXT I 60 VTAB 20: PRINT "DO YOU WISH INSTRUCTIONS ";: INPUT I$ 70 IF I$ < > "Y" THEN 190 80 HOME : VTAB 2: HTAB 14: PRINT "THE PUZZLER" 90 VTAB 4: PRINT "THE OBJECT OF THIS GAME IS TO GET ALL OF": PRINT "THE NUMBERS IN ORDER FROM 1 TO 15" 100 PRINT "THE COMMANDS ARE" SPC( 13);: INVERSE : PRINT "A": NORMAL : HTAB 30: PRINT ":": HTAB 30: PRINT ":" 110 HTAB 25: INVERSE : PRINT "<-";: NORMAL : PRINT " - ";: INVERSE : PRINT "->": NORMAL 120 : HTAB 30: PRINT ":": HTAB 30: PRINT ":": INVERSE : HTAB 30: PRINT "Z": NORMAL 130 PRINT : PRINT "BY MEANS OF THESE COMMANDS YOU WILL ": PRINT "EXCHANGE THE BLANK SPACE WITH THE NUMBER";: PRINT "IN THE UP,DOWN,LEFT OR RIGHT POSITIONS" 150 : VTAB 21: PRINT SPC( 8)"PRESS TO START GAME" 160 K = PEEK ( - 16384): IF K < 127 THEN 160 170 IF K = 155 THEN 190 180 GOTO 160 190 POKE - 16368,0: HOME : VTAB 4: HTAB 14: PRINT "THE PUZZLER": VTAB 12 200 PRINT "Type N to start a (N)EW GAME" 220 K = PEEK ( - 16384): IF K < 127 THEN 220 230 IF K = 206 THEN 260 240 IF K = 211 THEN 740 250 GOTO 220 260 HOME : PRINT "SCRAMBLING PUZZLE.............." 261 FOR I = 1 TO 16 270 Q = INT ( RND (1) * 16) + 1 280 IF PP(Q) THEN 270 290 PP(Q) = 1:NU(I) = Q: NEXT 300 TEXT : HOME : GR : COLOR= 12 310 FOR I = 0 TO 19: HLIN 0 + I,39 - I AT I: HLIN 0 + I,39 - I AT 39 - I 320 VLIN 0 + I,39 - I AT I: VLIN 0 + I,39 - I AT 39 - I: NEXT 330 COLOR= 1: FOR I = 9 TO 29 STEP 10: HLIN 0,39 AT I: VLIN 0,39 AT I: NEXT 340 COLOR= 0: HLIN 0,39 AT 39: VLIN 0,39 AT 39 350 FOR I = 1 TO 16:FLAG = 1:PL = I: GOSUB 370 360 NEXT I: GOTO 520 370 IF PL = 1 OR PL = 5 OR PL = 9 OR PL = 13 THEN X = 1 380 IF NU(PL) = 16 THEN RETURN 390 IF PL = 2 OR PL = 6 OR PL = 10 OR PL = 14 THEN X = 11 400 IF PL = 3 OR PL = 7 OR PL = 11 OR PL = 15 THEN X = 21 410 IF PL = 4 OR PL = 8 OR PL = 12 OR PL = 16 THEN X = 31 420 IF PL < 5 THEN Y = 2 430 IF PL > 4 AND PL < 9 THEN Y = 12 440 IF PL > 8 AND PL < 13 THEN Y = 22 450 IF PL > 12 THEN Y = 32 460 COLOR= 12: IF FLAG = 1 THEN COLOR= 2:FLAG = 0 470 IF NU(PL) > 9 THEN 500 480 X = X + 2 490 ON NU(PL) GOTO 850,860,870,880,890,900,910,920,930,1100,1110 500 GOSUB 850:X = X + 4 510 ON NU(PL) - 9 GOTO 840,850,860,870,880,890 520 FOR I = 1 TO 16: IF NU(I) = 16 THEN PL = I: GOTO 540 530 NEXT 540 K = PEEK ( - 16384): IF K < 127 THEN 540 545 POKE - 16368,0 550 IF K = 193 THEN 630 560 IF K = 218 THEN 650 570 IF K = 136 THEN 670 580 IF K = 149 THEN 690 610 IF K = 155 THEN TEXT : HOME : PRINT "BYE-BYE": END 620 GOTO 540 630 IF PL < 5 THEN 520 640 A = - 4: GOTO 710 650 IF PL > 12 THEN 520 660 A = 4: GOTO 710 670 IF PL = 1 OR PL = 5 OR PL = 9 OR PL = 13 THEN 520 680 A = - 1: GOTO 710 690 IF PL = 4 OR PL = 8 OR PL = 12 OR PL = 16 THEN 520 700 A = 1: GOTO 710 710 T = PL:PL = PL + A:FLAG = 0: GOSUB 370 720 NU(T) = NU(PL):NU(PL) = 16:PL = PL - A 730 FLAG = 1: GOSUB 370: GOTO 520 830 END 840 VLIN Y,Y + 5 AT X: VLIN Y,Y + 5 AT X + 2: PLOT X + 1,Y: PLOT X + 1,Y + 5: RETURN 850 VLIN Y,Y + 5 AT X + 1: PLOT X,Y: HLIN X,X + 2 AT Y + 5: RETURN 860 HLIN X,X + 2 AT Y: VLIN Y,Y + 2 AT X + 2: PLOT X + 1,Y + 2: VLIN Y + 3,Y + 5 AT X: HLIN X,X + 2 AT Y + 5: RETURN 870 HLIN X,X + 2 AT Y: HLIN X + 1,X + 2 AT Y + 2: HLIN X,X + 2 AT Y + 5: VLIN Y,Y + 5 AT X + 2: RETURN 880 VLIN Y,Y + 5 AT X + 2: VLIN Y,Y + 2 AT X: PLOT X + 1,Y + 2: RETURN 890 HLIN X,X + 2 AT Y: VLIN Y,Y + 2 AT X: PLOT X + 1,Y + 2: VLIN Y + 3,Y + 4 AT X + 2: HLIN X,X + 1 AT Y + 5: RETURN 900 VLIN Y + 1,Y + 5 AT X: HLIN X + 1,X + 2 AT Y: VLIN Y + 2,Y + 5 AT X + 2: HLIN X,X + 2 AT Y + 2: HLIN X,X + 2 AT Y + 5: RETURN 910 HLIN X,X + 2 AT Y: VLIN Y,Y + 5 AT X + 2: RETURN 920 VLIN Y,Y + 5 AT X: VLIN Y,Y + 5 AT X + 2: PLOT X + 1,Y: PLOT X + 1,Y + 2: PLOT X + 1,Y + 5: RETURN 930 HLIN X,X + 2 AT Y: VLIN Y + 1,Y + 5 AT X + 2: HLIN X,X + 2 AT Y + 2: VLIN Y,Y + 2 AT X: HLIN X,X + 1 AT Y + 5: RETURN