Listing of file='MATCH' on disk='vmedia/games_vol_3.wvd.zip'
# Sector 195, program filename = 'MATCH'
0010 E$="MATCH"
: DIM K$1,A$1,M$,Y$12
: GOSUB 1000
: GOTO 20
0015 DEFFN'0
0020 PRINT HEX(03)
: LIMITS T"@G.MATC1",W1,W2,W2
: ERRORDATA SAVE DC OPEN T2,"@G.MATC1"
: GOTO 20
0025 DATA LOAD DA T(W1)H1,H2
: ERRORIF W1<>0THEN DATA SAVE DA T(W1)0,0
: GOTO 25
0026 PRINT AT(4,0);"Highest so far =";H1;"games,";H2;"points"
0030 PRINT AT(2,32);"* M A T C H *"
: S9=600
: L9=12
: N=16
: C=30
: L=3
: S,S1=0
: Y$=" "
0100 PRINT AT(10,30);"0 . . . . . .";AT(10,32);
: ON LGOSUB 9010,9020,9030
0200 SELECT P
: PRINT AT(10,30);
: GOSUB 8000
: M$=STR(M$,,N)
: A$="0"
: A=0
0210 KEYIN K$,220,250
: GOSUB 5000
: GOTO 210
0220 REM % FIRE
: P=POS(Y$=A$)
: C=C-1
: IF C=0THEN L=1
: IF C=0THEN 9000
: IF P=0THEN 210
: GOSUB 8300
: P=P-1
: IF P=1THEN 230
: FOR X=PTO 3STEP -2
: STR(Y$,X,2)=STR(Y$,X-2,2)
: NEXT X
0230 STR(Y$,,2)=" "
: GOSUB 5020
: GOTO 210
0250 REM REVOLVE
: IF K$<>HEX(7E)THEN 210
0260 A=A+1
: CONVERT ATO A$,(#)
: ERRORA$="*"
: A=-1
0270 PRINT AT(10,30);A$;AT(10,30);
: GOTO 210
1000 REM % INSTRUCTIONS
1010 PRINT HEX(03);AT(2,32);"* M A T C H *"
: PRINT
: PRINT "To play this game you must match the number on the left using the
'FN' key"
: PRINT "to one or more on the right. The numbers generate themselves - th
ere are 16."
1020 PRINT
: PRINT TAB(20);"i.e. '5 \BD 8 5 3 7 2 1'"
: PRINT
: PRINT "By keying 'RETURN' the '5' will be matched and dropped, then the '
FN' key"
: PRINT "twice (to get '7') and 'RETURN' will match the '7', etc"
1030 PRINT
: PRINT "You have three lives per game, and 30 shots per game."
1040 PRINT
: PRINT "The second an subsequent games get faster and faster. If you get
to 9 games"
: PRINT "you start from one again only this time there are only 5 numbers o
n the right."
1050 PRINT
: PRINT "Press RETURN for the game to commence - good luck"
1060 KEYIN K$
: RETURN
5000 D=D+1
: IF D<>S9THEN RETURN
: D=0
5010 IF STR(Y$,2,1)<>" "THEN 9000
: Y$=STR(Y$,3)
: STR(Y$,12)=M$
: M$=STR(M$,2)
5020 REM % WIN
: IF Y$=" "AND M$=" "THEN 5200
: PRINT AT(10,33);STR(Y$,,12);AT(10,30);
: RETURN
5200 REM % WIN
: N=16
: IF S9<200THEN 5210
: S9=S9-50
: G=G+1
: GOSUB 5300
: GOTO 100
5210 S9=500
: L9=L9-2
: IF L9=0THEN STOP "I GIVE UP - YOU ARE TOO GOOD!!!!"
: GOTO 200
5300 REM % GAME
: PRINT AT(15,30);"Games won =";G;" points =";S
: FOR S1=1TO 5000
: NEXT S1
: C=30
: L=3
: D=0
: RETURN
8000 M=RND(1)
: M1=RND(1)
: CONVERT M*1E8TO M$,(########)
: CONVERT M1*1E8TO STR(M$,9),(########)
: REM PRINT M$
: RETURN
8300 REM % SCORE
: N=N-1
: IF A$<>"*"THEN S1=S1+A
: IF A$<>"*"AND S1/10=INT(S1/10)THEN IF STR(M$,,1)<>" "THEN STR(M$,,1)="*"
: IF A$="*"THEN PRINT HEX(07)
: S=S+(S9-100)/50*10*P/10
: PRINT AT(15,0);"Score =";S
: RETURN
9000 REM LOSE LIFE
: REM IF L=1THEN GOSUB 5300
: L=L-1
: IF L=0THEN 9980
: FOR S1=1TO 200
: NEXT S1
: PRINT AT(16,0);"Life lost!!!!! - now only";L;"lives"
9005 KEYIN K$,9005,9005
9006 D=0
: Y$=" "
: GOTO 100
9010 PRINT "-"
: RETURN
9020 PRINT "="
: RETURN
9030 PRINT "\BD"
: RETURN
9980 PRINT AT(18,0);"GAME OVER - Press SFK31 to end, of SFK0 for another game"
: END
9990 IF S>H2THEN DATA SAVE DA T(W1)G,S
9995 DEFFN'31
: LOAD T"GAMES"