image of READY prompt

Wang2200.org

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"