Ned W. Schultz
Here's a graphics puzzle game that is both challenging and unusually fascinating. The program was originally written for the Commodore 64, and we've added versions for the unexpanded VIC-20, Atari, Apple II-series computers, IBM PC (color or monochrome), PCjr, and TI-99/4A.
Are you ready to pit your brain against the computer's? "Mindbusters" presents you with three graphics puzzles that are guaranteed to keep your mind's microprocessors and memory chips whirring for hours.
After you type, save, and run your copy of Mindbusters, you can choose to solve one of three puzzles: a mind bender, a mind bruiser, or a mind blower. Warm up with the mind bender-it's the easiest. When you're prepared to press your brain to its limits, you're ready for the mind blower.
Following your selection, the program constructs a puzzle and displays it at the up per-left corner of the screen. Your job is to match that puzzle in the workspace at the lower-right corner of the screen. What's more, you try to solve the puzzle in as little time as possible. A timer ticks away as you work. There's no limit to how much time you can take, but the timer lets you compare your progress to a previous performance, or against another player if you wish. Your fastest time during the current session will be displayed on the screen.
Each puzzle is composed of several horizontal rows of odd shapes. A tiny arrow to the right of the workspace points to the row you're currently working on. To work on different rows, you can move the arrow up and down with the I and M keys (use the up/down cursor keys on the IBM and TI, and be sure to press ALPHA LOCK on the TI). To move the row of shapes next to the arrow left or right, press the J or K key (left/right cursor keys on the IBM and TI). When you think you've matched a row to the puzzle pattern, start working on another row.
When you succeed in correctly matching all the rows, the program automatically sig nals that you've solved the puzzle. Then you can play again if you like.
Helpful Hints
Because Mindbusters can generate a tremendous number of different puzzles, there are very few tricks to mastering it. I suggest you work from top to bottom or vice versa. The best tip I can offer after hours of my own mindbusting is to concentrate, concentrate, concentrate.
Important: When typing in the program, be extra careful with the long strings of charac ters at the beginning of the listing. These strings become the puzzle shapes. If you mistype or transpose a couple of characters when typing these strings, the program may still run, but it won't know when you've solved the puzzle. If you're using COMPUTO's "Automatic Proofreader" to enter the listing, remember that the Proofreader (except the IBM version) does not catch character-transposition errors.
Program 1: Mindbusters For Commodore 64
Please refer to "COMPUTE!'s Guide To Typing In Programs" before entering this listing.
10 S=54272:R$="000000":FORI=1TO4:READKE(I
):NEXT :rem 238
20 PRINTCHR$(14)CHR$(8) :rem 48
30 A$="XVAWVBWWAXNAWVBWWAXAWVBWANANAVVWAN
NNXAWVWAXWAXCVNVNFIAIAVBNWCCXVNVAWNW"
:rem 57
40 TM$="":FORT=1TO68:TM=ASC(MID$(A$,I,1))
+97:TM$=TM$+CHR$(TM):NEXT:A$=TM$
:rem 45
50 B$="12*OZ*Z*,0<2Z/*/OO,Z/02ZZ2Z*1,<Z-2
1,-2*Z<OZ-210*,Z*Z*1<122Z<Zl*<Z,*Z"
:rem 167
60 TM$="":FORI=1TO68:TM=ASC(MID$(B$,I,1))
+129:TM$=TM$+CHR$(TM):NEXT:B$=TM$
:rem 93
70 C$="ZZ$$$ZZ$$Z$Z$Z$Z$ZZZZZ$Z$$$Z$$$Z$Z
$$$$Z$Z$ZZZZ$Z$Z$$$Z$ZZZZZZ$$Z$$Z$"
:rem 11
80 TM$="":FORI=1TO68:TM=ASC(MID$(C$,I,1))
+133:TM$=TM$+CHR$(TM):NEXT:C$=TM$
:rem 92
90 POKE53281,1:PRINT"{CLR}{PUR}**********
******************************";
:rem 109
100 PRINT"E4~{RVS}{14 SPACES}MINDBUSTERS
{15 SPACES}{OFF}"; :rem 168
110 PRINT"{PUR}**************************
**************":GOSUB460:POKE53280,7
:rem 33
120 PRINT"{HOME}(3 D04JN}{4 RIGHT}[<45>]
[<12>]":PRINT"{3 RIGHT}[<N>]"SPC(12)"
[<H>]{2 RIGHT}USE I, J, K AND M"
:rem 132
130 PRINT"{3 RIGHT}[<N>]"SPC(12)"[<H>]":PRINT
"{3 RIGHT}[<N>]"SPC(12)"[<H>]{2 RIGHT}KEY
S TO MATCH THIS" :rem 84
140 PRINT"{3 RIGHT}[<N>]"SPC(12)"[<H>]":PRINT
"{3 RIGHT}FN2"SPC(12)"@H2{2 RIGHT}PAT
TERN AS FAST" :rem 177
150 PRINT"{3 RIGHT}[<N>]"SPC(12)"[<H>]":PRINT
"{3 RIGHT}[<N>]"SPC(12)"[<H>](2 RIGHT}AS
{SPACE}YOU CAN!!!!" :rem 185
160 PRINT"{3 RIGHT}[<N>]"SPC(12)"[<H>]":PRINT
"{4 RIGHT}[<12 Y>]" :rem 14
170 POKE214,3:PRINT :rem 132
180 FORN=1TO8:PP(N)=INT(RND(1)*56)+1:PRIN
T"{4 RIGHT}"CHR$(Z)MID$(D$,PP(N),12)
:rem 60
190 NEXT:PRINT:PRINTTAB(19)"{BLK}[<12 P>]"
:rem 1
200 FORN=1TO8:PRINTTAB(18)"[<N>]"SPC(12)"
[<H>]":NEXT:PRINTTAB(19)"[<12 Y>]"
:rem 146
210 POKE214,13:PRINT :rem 176
220 FORN=1TO8:P(N)=INT(RND(1)*56)+l:PRINT
TAB(19)CHR$(Z)MID$(D$,P(N),12):NEXT
:rem 234
230 AL=1616:POKEAL,31:POKEAL+S,0:AC=1:TI$
="000000" :rem 75
240 POKE198,0:KE=PEEK(197):J=0:FORI=1TO4:
IFKE=KE(I)THENJ=I:I=4 :rem 52
250 NEXT:ONJGOTO280,320,300,340 :rem 13
260 POKE214,13:PRINT:PRINT"{4 RIGHT}{RED}
{RVS)RECORD(OFF}{RIGHT}{BLK}"MID$(R$,
3,2)+":"+MID$(R$,5,2) :rem 186
270 PRINT"{DOWN}{4 RIGHT}{RVS}TIME{OFF}
{3 RIGHT}"MID$(TI$,3,2)":"MID$(TI$,5,
2):GOTO240 :rem 188
280 POKEAL,32:AL=AL-40:AC=AC-1:IFAL<1616T
HENAL=1616:AC=1 :rem 57
290 POKEAL,31:POKEAL+S,0:GOTO240 :rem 192
300 POKEAL,32:AL=AL+40:AC=AC+1:IFAL>1896T
HENAL=1896:AC=8 :rem 75
310 GOTO290 :rem 104
320 POKE214,12+AC:PRINT:P(AC)=P(AC)-1:IFP
(AC)<1THENP(AC)=1 :rem 156
330 GOTO350 :rem 103
340 POKE214,12+AC:PRINT:P(AC)=P(AC)+1:IFP
(AC)>56THENP(AC)=56 :rem 18
350 PRINTTAB(19)CHR$(Z)MID$(D$,P(AC),12)
:rem 250
360 FORX=1TO8:IFPP(X)<>P(X)THEN240
:rem 107
370 NEXT:SC$=TI$ :rem 203
380 POKE214,15:PRINT:PRINT"{4 RIGHT}{BLK}
{RVS}TIME{OFF}{3 RIGHT}"MID$(SC$,3,2)
+":"+MID$(SC$,5,2) :rem 213
390 PRINT"(DOWN}{3 RIGHT}{PUR}PUZZLE SOLV
ED!":GOSUB570:PRINT"{DOWN}{BLK}
{4 RIGHT}PLAY AGAIN?" :rem 148
400 PRINTSPC(7)"{DOWN}{RVS}Y{OFF}/{RVS}N
{OFF)" :rem 2
410 POKE53280,4:GETK$:IFK$=""THENPOKE5328
0,3:GOTO410 :rem 47
420 IFK$="N"THENSYS2048 :rem 95
430 IFR$="000000"ORSC$<R$THENR$=SC$
:rem 230
440 IFK$="Y"THEN90 :rem 8
450 GOTO410 :rem 103
460 PRINTSPC(10)"{3 DOWN}{BLK}DO YOU WANT
TO:":PRINTSPC(11)"{DOWN}{RVS}1{OFF)
{SPACE}BEND YOUR MIND?" :rem 198
470 PRINTSPC(11)"{DOWN}{RVS)2{OFF} BRUISE
YOUR MIND?" :rem 236
480 PRINTSPC(11)"{DOWN}{RVS}3{OFF} BLOW Y
OUR MIND?" :rem 88
490 POKE53280,3:GETK$:IFK$=""THENPOKE5328
0,4:GOTO490 :rem 63
500 K=VAL(K$):IFK<1ORK>3THEN490 :rem 106
510 IFK=ITHEND$=A$:Z=31:GOTO540 :rem 88
520 IFK=2THEND$=B$:Z=28:GOTO540 :rem 97
530 D$=C$:Z=144 :rem 14
540 PRINT"{HOME}{3 DOWN)":FORN=1TO10:PRIN
T"{39 SPACES}":NEXT :rem 21
550 RETURN :rem 122
560 DATA 33,37,36,34 :rem 217
570 FORI=STOS+24:POKEI,O:NEXT:POKES+24,15
:POKES+5,48:POKES+6,48 :rem 178
580 POKES+4,33:FORI=20TO80STEP3:POKES+1,I
:FORJ=1TO50:NEXT:NEXT:POKES+4,32
:rem 159
590 POKES+24,0:RETURN :rem 39
"Mindbusters" on the Commodore 64.
Program 2: Mindbusters For VIC-20
Please refer to "COMPUTE!'s Guide To Typing In Programs" before entering this listing.
10 S=30720:R$="000000":FORJ=1TO4:READKE(J
):NEXT:PRINTCHR$(14)CHR$(8) :rem 240
20 A$="XVAWVBWWAXNAWVBWWAXAWVBWANANAVVWAN
NNXAWVWAXWAXCVNVNWAWVBNWCCXVNVAWNW"
:rem 56
30 TM$="":FORI=1T068:TM=ASC(MID$(A$,I,1))
+97:TM$=TM$+CHR$(TM):NEXT:A$=TM$
:rem 44
40 B$="12*0Z*Z*,0<2Z/*/00,Z/02ZZ2Z*1,<Z-2
1,-2*Z<0Z-210*,Z*Z*1<122Z<Zl*<Z,*Z"
:rem 166
50 TM$="":FORI=1TO68:TM=ASC(MID$(B$,I,1))
+129:TM$=TM$+CHR$(TM):NEXT:B$=TM$
:rem 92
60 C$="ZZ$$$ZZ$$Z$Z$Z$Z$ZZZZZ$Z$$$Z$$$Z$Z
$$$$Z$Z$ZZZZ$Z$Z$$$Z$ZZZZZZ$$Z$$Z$"
:rem 10
70 TM$="":FORI=1TO68:TM=ASC(MID$(C$,I,1))
+133:TM$=TM$+CHR$(TM):NEXT:C$=TM$
:rem 91
80 POKE36879,31:PRINT"{CLR}{PUR)*********
*************"; :rem 45
90 PRINT BLK RVS}{5 SPACES}MINDBUSTERS
{6 SPACES}{OFF}"; :rem 121
100 PRINT"{PUR}**********************":GO
SUB530 :rem 208
110 PRINT"{HOME}{3 DOWN}{RIGHT}94:]912 P2
{3 SPACES}USE":PRINT"[<N>]"SPC(12)"[<H>]"
:rem 69
120 PRINT"[<N>]"SPC(12)"[<H>]I,J,K,M":PRINT"
[<N>]"SPC(12)"[<H>]" :rem 150
130 PRINT"[<N>]"SPC(12)"[<H>]KEYS TO":PRINT"
[<N>]"SPC(12)"[<H>]" :rem 199
140 PRINT"[<N>]"SPC(12)"[<H>] MATCH":PRINT"
[<N>]"SPC(12)"[<H>]" :rem 86
150 PRINT"[<N>]"SPC(12)"[<H>]GRID #1":PRINT"
{RIGHT}[<12 Y>]" :rem 217
160 POKE214,3:PRINT :rem 131
170 FORN=1TO8:PP(N)=INT(RND(1)*56)+1:PRIN
T"{RIGHT}"CHR$(Z)MID$(D$,PP(N),12)
:rem 228
180 NEXT:PRINT:PRINT" {BLK}[<12 P>]
{2 SPACES}WITH" :rem 170
190 PRINT"[<N>]"SPC(12)"[<H>]":PRINT"[<N>]"SPC(
12)"[<H>] #2 AS" :rem 215
200 PRINT"[<N>]"SPC(12)"[<H>]":PRINT"[<N>]"SPC(
12)"[<H>]FAST AS" :rem 168
210 PRINT"[<N>]"SPC(12)"[<H>]":PRINT"[<N>]"SPC(
12)"[<H>]YOU CAN" :rem 182
220 PRINT"[<N>]"SPC(12)"[<H>]" :rem 161
230 PRINT"[<N>]"SPC(12)"[<H>]{2 SPACES}!!!":P
RINT"{RIGHT}[<12 Y>]"; :rem 252
240 POKE214,13:PRINT :rem 179
250 FORN=1TO8:P(N)=INT(RND(1)*56)+1:PRINT
"{RIGHT}"CHR$(Z)MID$(D$,P(N),12):NEXT
:rem 188
260 FORI=1TO4000:NEXT:PRINT"{HOME}
{3 DOWN}";:FORI=1TO18:PRINTSPC(14)"
{7 SPACES}":NEXT :rem 166
270 PRINTSPC(14)"{7 SPACES}";:AL=8002:POK
EAL,Sl:POKEAL+S,0:AC=1:TI$="000000"
:rem 45
280 POKE198,0:KE=PEEK(197):J=0:FORI=1TO4:
IFKE=KE(I)THENJ=I:I=4 :rem 56
290 NEXT:ONJGOTO340,360,380,400 :rem 23
300 POKE214,3:PRINT:PRINTSPC(16)"{RED}
{RVS}BEST{OFF}:" :rem 208
310 PRINT"{BLK}":PRINTSPC(16)MID$(R$,3,2)
+":"+MID$(R$,5,2) :rem 52
320 POKE214,8:PRINT:PRINTSPC(16)"{RVS}TIM
E{OFF}:" :rem 188
330 PRINT"{DOWN}"SPC(16)MID$(TI$,3,2)":"M
ID$(TI$,5,2):GOTO280 :rem 61
340 POKEAL,32:AL=AL-22:AC=AC-1:IFAL<8002T
HENAL=8002:AC=1 :rem 46
350 POKEAL,31:POKEAL+S,0:GOTO280 :rem 193
360 POKEAL,32:AL=AL+22:AC=AC+1:IFAL>8156T
HENAL=8156:AC=8 :rem 73
370 GOTO350 :rem 107
380 POKE214,12+AC:PRINT:P(AC)=P(AC)-1:IFP
(AC)<1THENP(AC)=1 :rem 162
390 GOTO410 :rem 106
400 POKE214,12+AC:PRINT:P(AC)=P(AC)+1:IFP
(AC)>56THENP(AC)=56 :rem 15
410 PRINT"{RIGHT}"CHR$(Z)MID$(D$,P(AC),12
) :rem 198
420 FORX=1TO8:IFPP(X)<>P(X)THEN280
:rem 108
430 NEXT:SC$=TI$ :rem 200
440 POKE36878,15:FORI=1TO3:POKE36875,220:
FORD=1TO400:NEXT:POKE36875,0:POKE3687
6,220 :rem 223
450 FORD=1TO400:NEXT:POKE36876,0:NEXT:POK
E36878,0 :rem 9
460 POKE214,13:PRINT:PRINTTAB(16)"{RED}YO
U":PRINTTAB(15)"{DOWN}GOT IT" :rem 27
470 PRINTTAB(17)"{DOWN}11":PRINTTAB(15)"
{DOWN}AGAIN":PRINTTAB(15)"{DOWN}(Y/N)
?"; :rem 36
480 POKE36879,28:GETK$:IFK$=""THENPOKE368
79,27:GOTO480 :rem 199
490 IFK$="N"THENSYS1024 :rem 95
500 IFR$="000000"ORSC$<R$THENR$=SC$
:rem 228
510 IFK$="Y"THEN80 :rem 5
520 GOTO480 :rem 108
530 PRINT"{2 DOWN}{BLK}{3 RIGHT}DO YOU WA
NT TO:":PRINT"{2 DOWN}{RVS}{2 RIGHT}1
{OFF) BEND YOUR MIND?" :rem 36
540 PRINT"T2 RIGHT)(2 DOWN)(RVS)2{OFF) BR
UISE YOUR MIND?" :rem 156
550 PRINT"{2 RIGHT){2 DOWN)(RVS)3{OFF) BL
OW YOUR MIND?" :rem 8
560 POKE36879,27:GETK$:IFK$=""THENPOKE368
79,28:GOTO560 :rem 197
570 K=VAL(K$):IFK<1ORK>3THEN560 :rem 111
580 IFK=ITHEND$=A$:Z=31:GOTO610 :rem 93
590 IFK=2THEND$=B$:Z=28:GOTO610 :rem 102
600 D$=C$:Z=144 :rem 12
610 PRINT"{HOME){3 DOWN)":FORN=1TO12:PRIN
T"{21 SPACES)":NEXT:RETURN :rem 47
620 DATA 12,36,44,20 :rem 204
Here's how a mind-bending puzzle apperars in the VIC
version of "Mindbusters."
Program 3: Mindbusters For Atari
Please refer to "COMPUTEI's Guide To Typing In Programs" before entering this listing.
JP 1 GOTO 5
CJ 2 TIME=INT(PEEK(18)*65536+PEEK(19)
*256+PEEK(20))/60:MIN=INT(TIME/6
0):SEC=INT(TIME-MIN*60):RETURN
KB 5 DIM A$(68):DIM B$(68):DIM C$(68)
:DIM D$(68):DIM P(8):DIM PP(8):D
IM K(255):K(13)=1:K(1)=2:K(5)=3:
K(37)=4
MO 6 DIM R$(5):DIM TI$(6):RECORD=O
JB 10 A$="IDKLNMNMOKILLNIOKNIOKLNMOMI
LKNOIMKOINNNOILKOKNILKNOIMKNIML
KMONLMOIKO"
HI 20 8$="DXASEQWASEQDXASWWESAXQEAWSQ
DAXSQDXASEWEWEQDSAEEAEEQDDAXXAS
QEAXDQEXDX"
AF 30 C$="FFGGGFFGGFGFGFGFGFFFFFGFGGG
FGGGFGFGGGGFGFGFFFFGFGFGGGFGFFF
FFFGGFGGFG"
LL 40 FOR A=1 TO 68:A$(A,A)=CHR$(ASC(
A$(A,A))-64):B$(A,A)=CHR$(ASC(B
$(A,A))-64):C$(A,A)=CHR$(ASC(C$
(A,A))-64):NEXT A
IP 50 POKE 752,1:GRAPHICS 17:PRINT #6
,"{CLEAR}"
PC 55 SETCOLOR 4,10,0
NN 60 POSITION 14,1:PRINT #6,"mindbus
ters"
JF 70 POSITION 2,5:PRINT #6;"{RVS}DO YOU W
ANT TO:{OFF}"
DP 80 POSITION 0,9:PRINT #6;"1. BEND
YOUR MIND?"
BL 90 POSITION 0,11:PRINT #6;"2. BRUI
SE YOUR MIND?"
IC 100 POSITION 0,13:PRINT #6;"3. PLO
W YOUR MIND?":POKE 764,255
GE 110 KEY=PEEK(764):IF KEY=31 THEN D
$=A$:GOTO 150
OO 120 IF KEY=30 THEN D$=B$:GOTO 150
PF 130 IF KEY=26 THEN D$=C$-GOTO 150
GA 140 GOTO 110
HL 150 GRAPHICS 0:POKE 752,1
LN 151 POKE 709,0:POKE 710,8:POKE,712
,52
EC 155 POSITION 0,0:PRINT "{40 R}":PO
SITION 13,1:PRINT "MINDBUSTERS
"
HF 160 POSITION 0,2:PRINT "(40 R)"
HC 180 FOR A=5 TO 12:POSITION 3,A:PRI
NT "LB)(12 SPACES)(V)":POSITION
19,A+9:PRINT "(B'r(12 SPACES)
{V}":NEXT A
ME 190 POSITION 4,4:PRINT "{12 N}":PO
SITION 4,13:PRINT "{12 M}":POS
ITION 20,13:PRINT "{12 N}"
NL 200 POSITION 20,22:PRINT "{12 M}";
NI 210 POSITION 19,5:PRINT "Use I,J,K
, and M":POSITION 19,7:PRINT "
keys to match this"
GD 220 POSITION 19,9:PRINT "pattern a
s fast"
DG 230 POSITION 19,11:PRINT "as you c
an !!!!":POSITION 2,5
JI 240 FOR N=1 TO B:PP(N)=INT(RND(I)*
56)+1:PRINT "(2 RIGHT)";D$(PP(
N),PP(N)+11):NEXT N
AG 250 FOR N=1 TO B:P(N)=INT(RND(I)*5
6)+1:POSITION 20,13+N:PRINT D$
(P(N),P(N)+11):NEXT N
JI 260 AX=33:AY=14:AC=I:POSITION AX,A
Y:PRINT "<":FOR A=18 TO 20:POK
E A,0:NEXT A
HI 261 RM=INT(RECORD/60):RS=INT(RECOR
D-RM*60)
NG 262 POSITION 13,16:PRINT RM;":";:I
F RS<10 THEN PRINT "0":
MN 263 PRINT RS
BJ 270 KEY=K(PEEK(764)):POKE 764,255:
ON KEY GOTO 300,400,350,450
KB 280 POSITION 5, 16:PRINT "{RVS}RECORD{OFF} "
LP 290 POSITION 5,18:GOSUB 2:PRINT "{RVS}T
IME{OFF}{4 SPACES}";MIN;":";:IF SEC
<10 THEN PRINT "0";
JD 295 PRINT SEC;" ":GOTO 270
PD 300 POSITION AX,AY:AC=AC-1:PRINT "
":AY=AY-1:IF AY<14 THEN AY=14
:AC=1
LL 310 POSITION AX,AY:PRINT "<":GOTO
270
HN 350 POSITION 20,AY:P(AC)=P(AC)-1:I
F P(AC)<1 THEN P(AC)=1:GOTO 27
0
GH 360 GOTO 410
OB 400 POSITION 20,AY:P(AC)=P(AC)+1:I
F P(AC)>56 THEN P(AC)=56
NO 410 PRINT D4(P(AC),P(AC)+11)
GL 420 FOR X=1 TO 9:IF PP(X)<>P(X) TH
EN 270
CO 430 NEXT X
MD 435 POSITION 4,20:PRINT "PUZZLE SO
LVED!":GOSUB 590:POSITION 3,22
:PRINT "Play again (y/n)"
KE 440 IF PEEK(764)=35 THEN GRAPHICS
0:END
HN 445 IF RECORD=0 OR TIME<RECORD THE
N RECORD=TIME
HN 447 IF PEEK(764)=43 THEN 50
HB 448 GOTO 440
PK 450 POSITION AX,AY:AC=AC+1:PRINT "
":AY=AY+1:IF AY>21 THEN AY=21
:AC=8
MB 460 POSITION AX,AY:PRINT "<":GOTO
270
GA 590 FOR A=100 TO 10 STEP -1:SOUND
1,A,10,15:SOUND 2,A+50,10,15:P
OKE 53274,A:NEXT A:SOUND 1,0,0
,0
EJ 600 SOUND 2,0,0,0:POKE 53274,0:RET
URN
This is a mind-bruising puzzle in the Atari version of
"Mindbusters."
Program 4: Mindbusters For IBM PC/PCjr
Please refer to "COMPUTEI's Guide To Typing In Programs" before entering this listing.
MJ 10 CLS:SCREEN 0,1:DEF SEG=O:POKE 1047,
(PEEK(1047) OR 64) AND 223:HI=0:R$=
" 0:00"
JD 20 WIDTH 40:KEY OFF:DEF SEG=&H40:RANDO
MIZE PEEK(&H6D)
DK 30 FOR I=1 TO 4:READ KE(I):NEXT
CE 40 A$="AAHBBAABBABABABABAAAAABABBBABBB
ABABBBBABABAAAABABABBBABAAAAAABBABB
AB"
GE 50 TM$="":FOR I=1 TO 68:TM=ASC(MID$(A$
,I,1))+128:TM$=TM$+CHR$(TM):NEXT:A$
=TM$
CF 60 B$="DEAdEBddADeAdEBddADAdEBdAeAeAEE
dAeeeDAdEdADdADCEeEedAdEBedCCDEeEAd
ed"
KA 70 TM$="":FOR I=1 TO 68:TM=ASC(MID$(B$
,I,i)),+154:TM$=TM$+CHR$(TM):NEXT:B$
=TM$
JN 80 C$="TUASWAWABSVUWRARSSBWRSUWWUWATBV
WQUTBQUAWVSWQUTSABWAWATVTUUWVWTAVWB
AW"
MC 90 TM$="":FOR I=1 TO 68:TM=ASC(MID$(C$
,I,1))+120:TM$=TM$+CHR$(TM):NEXT:C$
=TM$
CP 100 COLOR 5;PRINT STRING$(40,220);:COL
OR 3:LOCATE 2,15,0:PRINT"MINDBUSTE
RS":COLOR 5:PRINT STRING$(40,223):
GOSUB 380:COLOR 0,14
PP 110 COLOR 7:LOCATE 4,4:PRINT STRING$(1
2,220):PRINT TAB.(3)CHR$(222)SPC(12
)CHR$(221)SPC(4)"Use cursor keys t
o"
OL 120 PRINT TAB(3)CHR$(222)SPC(12)CHR$(2
21):PRINT TAB(3)CHR$(222)SPC(12)CH
R$(221)SPC(4)"match this pattern"
IJ 130 PRINT TAB(3)CHR$(222)SPC(12)CHR$(2
21):PRINT TAB(3)CHR$(222)SPC(12)CH
R$(221)SPC(4)"as fast as you can":
PRINT TAB(3)CHR$(222)SPC(12)CHR$(2
21)
GE 140 PRINT TAB(3)CHR$(222)SPC(12)CHR$(2
21)SPC(11)"!!!!":PRINT TAB(3)CHR$(
222)SPC(12)CHR$(221):PRINT TAB(4)S
TRING$(12,223)
PH 150 COLOR Z,O:FOR N=1 TO B:PP(N)=INT(R
ND(1)*56)t1;LOCATE 4+N,4:PRINT MID
$(D$,PP(N),12):NEXT:COLOR 7,0:PRIN
T
DH 160 PRINT TAB(23)STRING$(12,220):PRINT
TAB(4);:COLOR 0,4:PRINT"Record"::
COLOR 7,0:PRINT SPC(3)R$:LOCATE 15
,22:PRINT CHR$(222)SPC(12)CHR$(221
)
IJ 170 PRINT TAB(22)CHR$(222)SPC(12)CHR$(
221):PRINT TAB(4);:COLOR O,2:PRINT
"Time";:COLOR 7,0:PRINT SPC(14)CHR
$(222)SPC(12)CHR$(221)
CF 180 FOR 1=1 TO 5-PRINT TAB(22)CHR$(222
)SPC(12)CHR$(221):NEXT I•.PRINT TAB
(23)STRING$(12,223)
LJ 190 COLOR Z,0:FOR N=1 TO S:P(N)=INT(RN
D(1)E56)+1:LOCATE 14+N,23:PRINT MI
D$(D$,P(N),12):NEXT:COLOR 7,0:PRIN
T
JG 200 AC=I:LOCATE AC+14,37:PRINT CHR$(27
):POKE &H6D,0:POKE &H6C,0
KJ 210 COLOR 7,0:C=PEEK(&H6C):D=PEEK(&H6D
):T=(C+D#256)/18.2:MT=INT(T/60):M$
=STR$(MT):ST=INT((T/60-MT)*60):S$=
STR$(ST):IF ST<10 THEN S$="0"+RICH
T$(STR$(ST),1)
EJ 220 LOCATE 17,13:PRINT M$":"RIGHT$(S$,
2):K$=INKEY$:IF LEN(K$)<%-2 THEN 21
0
JA 230 J=0:FOR 1=1 TO 4-IF ASC(MID$(K$,2,
1))=KE(I) THEN J=I:I=4
FJ 240 NEXT-.ON J GOTO 260,300,280,320
CM 250 GOTO 210
NJ 260 LOCATE AC+14,37:PRINT" ":AC=AC-1:I
F AC<1 THEN AC=1
PJ 270 LOCATE AC+14,37:PRINT CHR$(27):GOT
O 210
FF 280 LOCATE AC+14,37:PRINT " ":AC=AC+1:
IF AC>8 THEN AC=8
GG 290 GOTO 270
MF 300 P(AC)=P(AC)-1:IF P(AC)<1 THEN P(AC
)=1
DF 310 GOTO 330
DJ 320 P(AC)=P(AC)+1:IF P(AC)>56 THEN P(A
C)=56
FI 330 LOCATE AC+14,23:COLOR Z,0:PRINT MI
D$(D$,P(AC),12)
CC 340 FOR X=1 TO B:IF PP(X)<>P(X) THEN 2
10
IP 350 NEXT:COLOR 14,0:LOCATE 20,4:PRINT"
Puzzle solved!":GOSUB 450:LOCATE 2
2,5:PRINT"Play again?":LOCATE 23,7
:PRINT"(Y/N)"
LH 360 IF INT(T)<HI OR HI=0 THEN HI=INT(T
):R$=RIGHT$(M$,2)+":"+RIGHT$(S$,2)
HN 370 COLOR ,0,3.K$=INKEY$:IF K$="" THEN
COLOR ,0,5:GOTD 370 ELSE IF K$="N
" THEN END ELSE IF K$="Y" THEN CLS
:GOTO 100 ELSE 370
KJ 380 LOCATE 9,13:COLOR 5,0:PRINT "Do yo
u want to:":LOCATE 11,13:COLOR 0,5
:PRINT"1";:COLOR 5,0:PRINT" Bend y
our mind?"
MD 390 LOCATE 13,13:COLOR 0,5:PRINT"2";:C
OLOR 5,0:PRINT" Bruise your mind?"
:LOCATE 15,13:COLOR 0,5-PRINT "3";
:COLOR 5,0:PRINT " Blow your mind?
"
DN 400 COLOR ,0,3:K$=INKEY$:IF K$="" THEN
COLOR ,0,5:GOTO 400 ELSE K=VAL(K$
):IF K<1 OR K>3 THEN 400
LD 410 IF K=1 THEN D$=A$:Z=2:GOTO 430
JD 420 IF K=2 THEN D$=B$:Z=4 ELSE D$=C$:Z
=3
AA 430 FOR I=0 TO 9-LOCATE 9+1,13:PRINT S
TRING$(19,32):NEXT:RETURN
MI 440 DATA 72,77,80,75
LD 450 FOR 1=220 TO 880 STEP 20:SOUND 1,.
5:NEXT:RETURN
"Mindbusters," IBM PC/PCjr version a mind-blowing
puzzle, the hardest kind of all.
Program 5: Mindbusters For Apple
10 HIMEM: 36096
20 R1 = 0:R2 = 0:H$= "
"
30 GOSUB 620
40 A$ = "'%!&%4&&!'$!&%4&&!'!&%4&!$!$'%
%&!$$$'!&%&!'&!'#%$%$&!&%4$&##'%$%
!&$&"
50 B$ = "/0(.+(+(*.)0+-(-..*+-.0++0+(/*
)++0/*+0(+).++0/.(t+(+(/)/00+)+/()
+*(+1.
60 C$ = "112221122121212121111121222122
2121222212121111212122212111111221
2212"
70 TEXT : HOME : VTAB 5: PRINT
: FOR I = 4 TO 35: PRINT CHR$ (95
);: NEXT : PRINT
80 PRINT : PRINT SPC( 14)"MINDBUSTERS
"
90 PRINT " ";: FOR I = 4 TO 35: PRINT
CHR$ (95);: NEXT : PRINT : VTAB 1
1: PRINT TAB( 15)"PLEASE WAIT..."
GOSUB 440
100 HGR : HCOLOR= 5: HPLOT 1,3 TO 95,3
TO 95,75 TO 1,75 TO 1,3
110 HCOLOR= 6: HPLOT 154,76 TO 250,76 TO
250,147 TO 154,147 TO 154,76
120 POKE 6,0: POKE 7,141: POKE 54,0: POKE
55,3: CALL 1002
130 FOR N = 1 TO B:PP(N) = INT ( RND
(3) * 55) + 1: HTAB 2: VTAB 1 + N:
PRINT MID$. (D$,PP(N),12): NEXT
140 FOR N = 1 TO 8:P(N) = INT ( RND
2) * 55) + 1: VTAB 10 + N: HTAB 24-
: PRINT MID$ (D$,P(N),12): NEXT
150 VTAB 11: HTAB 38: PRINT "3"
160 AC = 1: VTAB 21: PRINT TAB( 14)"US
E THE 1, J, K AND M": PRINT TAB(
14)"KEYS TO MATCH THE PATTERN": PRINT
TAB( 14)"IN THE RED BOX AS FAST":
PRINT TAB( 14)"AS YOU CAN!!!!";
170 KE = PEEK ( - 16384):J = 0: POKE -
16368,0:J = KE - 200
180 T3 = T3 + 1: IF T3 = 12 THEN T3 = 0
:T2 = T2 + 1: IF T2 = 60 THEN T2 =
00:T1 = T1 + 1
190 IF J < 0 OR J > 5 THEN J = 0
200 ON J GOTO 240,320,300,170..270
210 HTAB 1: VTAB 22: PRINT "RECORD "R1
":";: IF R2 < 10 THEN PRINT "0";
220 PRINT R2: HTAB 1: VTAB 24: PRINT "
TIME "T1":";: IF T2 < 10 THEN PRINT
"0";
230 PRINT T2;: GOTO 170
240 VTAB 10 + AC: HTAB 38: PRINT " "
250 AC = AC - 1: IF AC <' 1 THEN AC = 1
260 VTAB 10 + AC: HTAB 38: PRINT "3";:
GOTO 210
270 AC = AC + 1: IF AC :- 8 THEN AC = 8
280 VTAB 9 + AC: HTAB 38: PRINT " "
290 GOTO 260
300 P(AC) = P(AC) - 1: IF P(AC) < 1 THEN
P(AC) = 1
310 GOTO 330
320 P(AC) = P(AC) + 1: IF P(AC) > 56 THEN
P(AC) = 56
330 VTAB 10 + AC: HTAB 24: PRINT MID$
(D$,P(AC),12)
340 FOR X = 1 TO 8: IF PP(X) < >P(X)
THEN 210
350 NEXT
360 FOR I = 21 TO.23: VTAB I: HTAB 14:
PRINT H$: NEXT : VTAB 24: HTAB 14
: PRINT MID$ (H$,1,14);: FOR I =
1 TO 5: PRINT CHR$ (7);: NEXT
370 VTAB 22: HTAB 20: PRINT "PUZZLE SO
LVED!": HTAB 20: PRINT "PLAY AGAIN
?"
380 HTAB 26: PRINT "Y/N";: GET K$
390 IF K$ = "N" THEN TEXT : HOME : END
400 T$ = STR$ (T1) + "." + STR$ (T2):
R$ = STR$ (R1) + "." + STR$ (R2)
410 IF R$ = "0.0" OR VAL (T$) < VAL
(R$) THEN R1 = T1:R2 = T2
420 IF K$ = "Y" THEN T1 = 0:T2 = 0:T3 =
0: GOTO 70
430 GOTO 380
440 POKE 230,32: CALL - 3086: POKE 23
0,64: CALL - 3086
450 POKE 54,240: POKE 55,253: CALL 100
2
460 FOR P = 1 TO 2: HCOLOR= P: FOR I =
1 TO 8
470 HPLOT I,I TO 279 - 1,1 TO 279 - I,
191 - I TO 1,191 - I TO I,I
480 NEXT I: POKE 230,32: NEXT P
490 VTAB 11: HTAB 26: PRINT " "
500 VTAB 11: HTAB 11: PRINT "DO YOU WA
NT TO:": PRINT : PRINT TAB( 11)"1
- BEND YOUR MIND?": PRINT : PRINT
TAB( 11)"2 - BRUISE YOUR MIND?": PRINT
: PRINT TAB( 11)"3 - BLOW YOUR MI
ND?"
510 POKE - 16302,0
520 A = PEEK ( - 16384): IF A > 127 THEN
550
530 POKE - 16297,0: POKE - 16304,0: POKE
- 16300,0: POKE - 16299,0: POKE
- 16300,0: POKE - 16303,0: FOR I
= 1 TO 50: NEXT
540 GOTO 520
550 POKE - 16368,0:A = A - 176: IF A <
1 OR A > 3 THEN 520
560 POKE 230,32: CALL - 3086
570 IF A = 1 THEN D$ = A$
580 IF A = 2 THEN D$ = B$
590 IF A = 3 THEN n$ = C$
600 RETURN
610 REM SHAPE DATA
620 FOR I = 36096 TO 36263: READ A:CS =
CS + A: POKE I,A: NEXT
630 IF CS < > 11534 THEN PRINT "ERRO
R IN FIRST SET OF DATA STATEMENTS.
": STOP
640 DATA 128,128,128,128,128,128,128,
128
650 DATA 0,0,0,0,255,255,255,255
660 DATA 0,0,0,0,0,0 0,0
670 DATA 0,0,0,0,0,0,0,255
680 DATA 0,0,0,0,0,0,255,255
690 DATA 255,255,0,0,0,0,0,0
700 DATA 255,255,255,0,0,0,0,0
710 DATA 0,0,0,0,0,255,255,255
720 DATA 24,24,24,31,31,24,24,24
730 DATA 24,24,24,31,31,0,0,0
740 DATA 0,0,0,248,248,24,24,24
750 DATA 0,0,0,31,31,24,24,24
760 DATA 24,24,24,255,255,0,0,0
770 DATA 0,0,0,255,255,24,24,24
780 DATA 24,24,24,248,248,24,24,24
790 DATA 24,24,24,248,248,0,0,0
800 DATA 24,24,24,255,255,24,24,24
810 DATA 204,153,51,102,204,153,51,10
2
820 DATA 51,153,204,102,51,153,204,10
2
830 DATA 8,12,14,127,127,14,12,8
840 DATA 255,0,0,0,0,0,0,0
850 REM HROUT ML ROUTINE
860 FOR I = 768 TO 856: READ A:CK = CK
+ A: POKE I,A: NEXT
870 IF CK < > 8413 THEN PRINT "ERROR
IN SECOND SET OF DATA STATEMENTS.
": STOP
880 RETURN
890 DATA 216,120,133,69,134,70,132,71
900 DATA 166,7,10,10,176,4,16,62
910 DATA 48,4,16,1,232,232,10,134
920 DATA 27,24,101,6,133,26,144,2
930 DATA 230,2,7,165,40,133,8,165,41
940 DATA 41,3,5,230,133,9,162,8
950 DATA 160,0,177,26,36,50,48,2
960 DATA 73,127,164,36,145,8,230,26
970 DATA 208,2,230,27,165,9,24,105
980 DATA 4,133,9,202,208,226,165,69
990 DATA 166,70,164,71,88,76,240,253
1000 DATA 255,255,255,255,255,255,255
,255
Apple "Mindbusters."
Program 6: Mindbusters For TI-99/4A
100 GOTO 150
110 FOR M=1 TO LEN(H$)
120 CALL HCHAR(R,C+M,ASC(SEG$(H$,M,
1)))
130 NEXT M
140 RETURN
150 CALL CLEAR
160 SCR=3
170 HIGH=0
180 GOSUB 1470
190 CALL SCREEN(15)
200 FOR 1=9 TO 12
210 CALL COLOR(I,1,1)
220 NEXT I
230 GOSUB 1730
240 GOSUB 1760
250 GOSUB 1730
260 PRINT
270 FOR J=1 TO 2
280 PRINT " "&CHR$(135)&CHR$(129)&
CHR$(129)&CHR$(129)&CHR$(129)&C
HR$(129)&CHR$(129)&CHR$(129)&CH
R$(129);
290 PRINT CHR$(129)&CHR$(129)&CHR$(
129)&CHR$(129)&CHR$(132)
300 FOR I=1 TO 8
310 PRINT " "&CHR$(130)&"
{12 SPACES}"&CHR$(134)
320 NEXT I
330 PRINT " "&CHR$(131)&CHR$(128)&
CHR$(128)&CHR$(128)&CHR$(128)&C
HR$(128)8(CHR$(128)&CHR$(128)&CH
R$(128);
340 PRINT CHR$(128)&CHR$(128)&CHR$(
128)&CHR$(128)&CHR$(133.)
350 NEXT J
360 CALL HCHAR(1,1,136,32)
370 CALL HCHAR(3,1,137,32)
380 H$="USE ARROW"
390 R=7
400 C=19
410 GOSUB 110
420 H$="KEYS TO"
430 R=9
440 GOSUB 110
450 R=11
460 H$="MATCH THE"
470 GOSUB 110
480 R=13
490 H$="1ST GRID"
500 GOSUB 110
510 H$="WITH THE 2ND"
520 R=15
530 GOSUB 110
540 H$="AS FAST AS"
550 R=17
560 GOSUB 110
570 H$="YOU CAN !!!"
580 R=19
590 GOGUB 110
600 R=5
610 C=5
620 FOR N=1 TO 8
630 RANDOMIZE
640 PP(N)=INT(RND*56)+1
650 H$=SEG$(D$,PP(N),12)
660 GOSUB 110
670 R=R+1
680 NEXT N
690 R=R+2
700 FOR N=1 TO 8
710 RANDOMIZE
720 P(N)=INT(RND*56)+1
730 H$=SEG$(D$,P(N),12)
740 GOSUB 110
750 R=R+1
760 NEXT N
770 CALL SOUND(100,440,3)
780 CALL COLOR(KSET(Z),F(Z),1)
790 IF Z<>2 THEN 810
800 CALL COLOR(11,13,1)
810 FOR R=5 TO 20
820 CALL HCHAR(R,20,32,12)
830 NEXT R
840 TIME=0
850 R1=15
860 C1=19
870 CALL HCHAR(R1,C1,91)
880 H$="RECORD: "&STR$(HIGH)
890 R=6
900 C=19
910 GOSUB 110
920 H$="TIME:(3 SPACES}"&STR$(TIME)
930 R=10
940 GOSUB 110
950 CALL KEY(O,K,S)
960 TIME=TIME+.3
970 H$=STR$(INT(TIME))
980 C=27
990 R=10
1000 GOSUB 110
1010 IF (K<>69)*(K<>88) THEN 10170
1020 CALL HCHAR(Rl,Cl,32)
1030 R1=R1-(R1<>15)*(K=69)+(R1<>22)
*(K=88)
1040 CALL HCHAR(R1,C1,91)
1050 TIME=TIME+,l
1060 GOTO 9501
1070 IF K<>68 THEN 1100
1080 P(R1-14)=P(R1-14)+(P(R1-14)<>1
)
1090 GOTO 1120
1100 IF K<>83 THEN 950
1110 P(Rl-14)=P(R1-14)-(P(RI-14)<>5
6)
1120 H$=SEG$(D$,P(R1-14),12)
1130 R=R1
1140 C=5
1150 GOSUB 110
1160 TIME=TIME+1
1170 FOR X=1 TO 8
1180 IF PP(X)<>P(X)THEN 950
1190 NEXT X
1200 H$="PUZZLE"
1210 R=16
1220 C=22
1230 GOSUB 110
1240 H$="SOLVED!"
1250 FOR I=220 TO 880 STEP 20
1260 CALL SOUND(50,I,3)
1270 NEXT I
1280 R=18
1290 GOSUB 110
1300 H$="PLAY"
1310 R=20
1320 C=23
1330 GOSUB 1101
1340 H$="AGAIN (Y/N)?"
1350 C=20
1360 R=22
1370 GOSUB 110
1380 CALL KEY(0,K,S)
1390 IF S=0 THEN 13850
1400 IF K=89 THEN 1430
1410 IF K<>78 THEN 1380
1420 STOP
1430 IF (INT (TIME)>HIGH)*(HIGH<>0)T
HEN 1450
1440 HIGH=INT(TIME)
1450 CALL CLEAR
1460 GOTO 190
1470 FOR I=1 TO 29
1480 READ A,A$
1490 CALL CHAR(A,A$)
1500 NEXT I
1510 CALL COLOR(14,14,1)
1520 A$="geafebffagdafebffagafebfad
adaeefadddgafefagfagcededfofeb
dfccgedeafdf
1530 B$="mnhlphphilonpkhkllipklnppn
phmiopjnmijnhpolpjnmlhiphphmom
nnpopmhopihp"
1540 C$="yyxxxyyxxyxyxyxyxyyyyyxyxx
xyxxxyxyxxxxyxyxyyyyxyxyxxxyxy
yyyyyxxyxxyx"
1550 F(1)=5
1560 KSET(1)=9
1570 F(2)=13
1580 KSET(2)=10
1590 F(3)=2
1600 KSET(3)=12
1610 RETURN
1620 DATA 97,0000000OFFFFFFFF,98,FF
00000000000000,99,000000000000
00FF
1630 DATA 100,000000000000FFFF,101,
FFFF000000000000,102,FFFFFF000
0000000
1640 DATA 103,0000000000FFFFFF,104,
1818181FIF181818,105,1818181F1
F000000
1650 DATA 106,000000F8F8181818,107,
0000001FIF181818,108,181818FFF
F000000
1660 DATA 109,000000FFFF181818,110,
181818F8F8181818,111,181818F8F
8000000
1670 DATA 112,181818FFFF181818,120,
CC993366CC993366,121,3399CC663
399CC66
1680 DATA 128,FFFF00000000O000,129,
000000000000FFFF,130,030303030
3030303
1690 DATA 131,0303000000000000,132,
000000000000COC0,133,COC000000
0000000
1700 DATA 134,COCOCOCOCOCOCOCO,135,
0000000000000303,91,0010307FFF
7F3010
1710 DATA 136,000000000000FFFF,137,
FFFF000000000000
1720 PRINT " }{{{{{{{{{{{{{"&CHR$(
127)
1730 CALL CLEAR
1740 PRINT TAB(10);"MINDBUSTERS"
1750 RETURN
1760 PRINT
1770 PRINT TAB(7);"DO YOU WANT TO:"
: : :
1780 PRINT TAB(6);"1 BEND YOUR MIND
?": :
1790 PRINT TAB(6);"2 BRUISE YOUR MI
ND?": :
1800 PRINT TAB(6);"3 BLOW YOUR MIND
?": : : : : :
1810 CALL HCHAR(5,1,136,32)
1820 CALL HCHAR(7,1,137,32)
1830 CALL KEY(0,K,S)
1840 CALL SCREEN(SCR)
1850 SCR=SCR-(SCR<16)+(SCR=16)*14
1860 IF S=0 THEN 1830
1870 CALL SCREEN(15)
1880 Z=K-48
1890 IF (Z<1)+(Z>3)THEN 1830
1900 IF Z>1 THEN 1930
1910 D$=A$
1920 RETURN
1930 IF Z=3 THEN 1960
1940 D$=B$
1950 RETURN
1960 D$=C$
1970 RETURN
"MINDBUSTERS" on the TI-99/4A.