image of READY prompt

Wang2200.org

Listing of file='SEAWAR' on disk='vmedia/games.wvd.zip'

# Sector 574, program filename = 'SEAWAR'
0010 REM ***SEA WAR GAME --- AN INTERACTIVE GUNNERY EXCHANGE GAME***
0030 PRINT HEX(03);"                     *****SEA WAR*****";
0040 FOR X=1TO 250
   : NEXT X
   : PRINT "INSTRUCTIONS:";HEX(0D);
0050 PRINT "YOU COMPETE AGAINST THE 2200 -- THE 2200 CONCEALS A FLEET OF    BE
     TWEEN 25 AND 40 SHIPS ON THE SCREEN."
0060 PRINT "YOU MUST FIND AND SINK AT LEAST FIVE OF THE SHIPS BUT, THE      CO
     MPUTER SHOOTS BACK.  AND IT ONLY TAKES FOUR HITS TO SINK YOU";
0070 PRINT "THE SHIPS HIDDEN BY THE 2200 TAKE FROM ONE TO FOUR HITS TO SINK.TH
     E NUMBER OF HITS MADE ON EACH IS DISPLAYED - (SO ARE THE HITS ON YOU)."
0080 PRINT "YOU HAVE 50 SHOTS (SO DOES THE COMPUTER).";
0090 PRINT "TO PICK THE LOCATION AT WHICH TO FIRE; SF#0 MOVES THE CURSOR    RI
     GHT, SF#1 MOVES THE CURSOR LEFT, SF#2 MOVES THE CURSOR UP AND SF#3 MOVES
     THE CURSOR DOWN."
0100 PRINT "PRESS 'EXECUTE' TO FIRE--- A '0' MEANS NO SHIP ON THAT SPOT    ANY
      OTHER NUMBER TELLS YOU THE NUMBER OF HITS ON THAT SHIP SO FAR."
0110 PRINT "AN 'S' MARKS A SUNKEN SHIP."
0120 DIM A$(10)32,B$(10)32,C$(10)32,K$1,H$17,F$20,D$1
0130 INIT(2E)A$()
   : INIT(30)B$()
   : INIT(20)H$,F$
   : INIT(00)C$()
0140 K,D,F,H,S,H1=0
0150 H$=HEX(010A0A0A0A0A0A0A0A0A0A0A0A0A0A0A)
0180 FOR A=1TO 10
   : FOR B=1TO 32
   : C=INT(RND(1)*10)
   : IF C<1THEN 220
   : IF C>10THEN 220
   : IF C=1THEN 190
   : IF C=2THEN 190
   : IF C=4THEN 190
   : IF C=4THEN 190
   : STR(C$(A),B,1)="0"
   : NEXT B
   : NEXT A
   : GOTO 230
0190 E=INT(RND(1)*10)
   : IF E>9THEN 220
   : IF E>4THEN 200
   : GOTO 220
0200 L=INT(RND(1)*10)
   : IF L<3THEN 220
   : IF L>7THEN 220
0210 D=D+1
   : IF D>40THEN 220
   : CONVERT CTO C$,(#.)
   : STR(C$(A),B,1)=C$
   : NEXT B
   : NEXT A
   : GOTO 230
0220 STR(C$(A),B,1)="0"
   : NEXT B
   : NEXT A
0230 PRINT "PRESS 'EXECUTE' TO START GAME";
0240 KEYIN K$,250,240
   : GOTO 240
0250 SELECT PRINT 005
   : GOSUB 270
   : GOSUB 830
   : GOTO 320
0260 REM %\A0MATRIX
0270 PRINT HEX(030A)
   : SELECT PRINT 205
   : FOR A=1TO 10
   : PRINT TAB(20);
   : FOR B=1TO 32
   : PRINT STR(A$(A),B,1);
   : NEXT B
   : PRINT HEX(0D0A);
   : NEXT A
0280 REM %\A0SCORECARD
0290 SELECT PRINT 005(64)
0300 PRINT HEX(010A0A0A0A0A0A0A0A0A0A0A0A0A);"SHOTS FIRED  ";F;TAB(20);"HITS S
     CORED  ";H;TAB(39);"SHIPS SUNK  ";S
0310 PRINT TAB(30);"HITS SCORED ON YOU  ";H1
   : SELECT PRINT 205
   : RETURN
0320 PRINT HEX(010A0909090909090909090909090909090909090909);
   : A,B=1
0330 REM
0340 KEYIN K$,460,350
   : GOTO 340
0350 ON VAL(K$)+1GOSUB 370,390,410,440
0360 GOSUB 290
   : GOTO 500
0370     REM ---CURSOR RIGHT
0380 B=B+1
   : PRINT HEX(09)
   : IF B>32THEN 400
   : RETURN
0390     REM ---CURSOR LEFT
0400 B=B-1
   : PRINT HEX(08)
   : IF B<1THEN 380
   : RETURN
0410     REM ---CURSOR UP
0420 A=A-1
   : IF A<1THEN 430
   : PRINT HEX(0C)
   : RETURN
0430 A=A+1
   : RETURN
0440     REM ---CURSOR DOWN
0450 A=A+1
   : PRINT HEX(0A)
   : IF A>10THEN 420
   : RETURN
0460 REM
0470       REM
0480 F=F+1
   : IF F>50THEN 750
   : GOSUB 710
   : IF STR(C$(A),B,1)<>HEX(30)THEN 510
   : STR(A$(A),B,1)=HEX(30)
   : GOSUB 490
   : GOSUB 290
   : GOTO 500
0490 PRINT HEX(01);
   : FOR X=1TO A
   : PRINT HEX(0A);
   : NEXT X
   : FOR X=1TO 20
   : PRINT HEX(09);
   : NEXT X
   : PRINT A$(A);
   : RETURN
0500 PRINT HEX(01);
   : FOR X=1TO A
   : PRINT HEX(0A);
   : NEXT X
   : FOR X=1TO B+19
   : PRINT HEX(09);
   : NEXT X
   : GOTO 340
0510       REM
0520 IF STR(C$(A),B,1)=STR(B$(A),B,1)THEN 540
   : GOTO 540
0530 IF STR(B$(A),B,1)=HEX(30)THEN 540
   : GOTO 590
0540 D$=STR(B$(A),B,1)
   : CONVERT D$TO D
   : D=D+1
   : CONVERT DTO D$,(#.)
   : STR(B$(A),B,1)=D$
   : H=H+1
   : IF STR(C$(A),B,1)=STR(B$(A),B,1)THEN 570
0550 STR(A$(A),B,1)=STR(B$(A),B,1)
   : GOSUB 490
   : GOSUB 290
   : GOTO 500
0560        REM
0570 S=S+1
   : IF S>4THEN 620
   : STR(A$(A),B,1)="S"
   : F$="***SUNK***"
   : GOSUB 780
   : PRINT HEX(01);
   : FOR X=1TO 12
   : PRINT HEX(0A);
   : NEXT X
   : PRINT TAB(63);HEX(200D0A);TAB(63);HEX(2001)
   : GOSUB 490
   : GOSUB 290
   : GOTO 500
0580        REM
0590 PRINT HEX(010A0A0A0A0A0A0A0A0A0A0A09090909090909090909);"YOU CAN'T SINK A
      SHIP AGAIN SILLY"
0600 F$="***DUMB***"
   : GOSUB 780
   : PRINT HEX(01);
   : FOR X=1TO 11
   : PRINT HEX(0A);
   : NEXT X
   : PRINT TAB(63);HEX(200D0A);TAB(63);HEX(2001)
   : GOSUB 290
   : GOTO 500
0610     REM
0620 SELECT PRINT 005
   : PRINT HEX(030A0A0A0A0A0A0A0A),"***CONGRADULATIONS***"
   : F$="YOU SANK FIVE"
   : GOSUB 780
   : PRINT HEX(01);
   : FOR X=1TO 12
   : PRINT HEX(0A);
   : NEXT X
   : PRINT TAB(63);HEX(200D0A);TAB(63);HEX(2001)
0630 Y=0
   : FOR X=1TO 500
   : NEXT X
   : INPUT "CARE FOR ANOTHER GAME (1=YES,2=NO)",Y
0640 IF Y=0THEN 650
   : ON YGOTO 130,660
0650 PRINT HEX(030A0A0A0A0A);TAB(20);"AW COME ON FELLAH";
   : FOR X=1TO 100
   : NEXT X
   : PRINT "TELL ME WHAT YOU WANT TO DO---"
   : GOTO 630
0660 F$="**SO LONG**"
   : PRINT HEX(030A0A0A0A);TAB(30);"BYE NOW"
   : GOSUB 780
0670 GOSUB 780
   : GOTO 670
0680 REM %LOSE LOGIC
0690 SELECT PRINT 005
   : PRINT HEX(010A0A0A0A0A0A);"SORRY - YOU LOSE";
   : FOR X=1TO 150
   : NEXT X
   : PRINT HEX(202020);"---BETTER LUCK NEXT TIME";
   : GOTO 630
0700      REM ---RETURN FIRE LOGIC
0710 G=INT(RND(1)*10)
   : IF G<1THEN 720
   : IF G=STHEN 730
   : RETURN
0720 RETURN
0730 H1=H1+1
   : IF H1=5THEN 770
   : F$="***GOTCHA***"
   : GOSUB 780
   : PRINT HEX(01);
   : FOR X=1TO 12
   : PRINT HEX(0A);
   : NEXT X
   : PRINT TAB(63);HEX(200D0A);TAB(63);HEX(2001)
   : GOSUB 290
   : RETURN
0740     REM ---AMMO GONE
0750 PRINT HEX(030A0A0A);TAB(30);"YOU ARE OUT OFAMMUNITION"
   : FOR X=1TO 150
   : NEXT X
   : GOTO 690
0760     REM ---COMPUTER SINKS YOU
0770 PRINT HEX(030A0A0A0A);TAB(30);"*****GOTCHA*****"
   : FOR X=1TO 200
   : NEXT X
   : PRINT TAB(30);"------YOU ARE SUNK------"
   : FOR X=1TO 500
   : NEXT X
   : GOTO 690
0780 REM %MOVING MESSAGE
0790 PRINT STR(H$,1,13)
   : FOR I=1TO 5
   : FOR J=1TO 40
   : PRINT TAB(J);F$;HEX(200D);
   : NEXT J
0800 FOR J=40TO 1STEP -1
   : PRINT TAB(J);F$;HEX(200D);
   : NEXT J
   : NEXT I
0810 RETURN
0820 REM %\A0CURSOR INSTRUCTIONS
0830 PRINT HEX(01);
   : FOR X=1TO 5
   : PRINT HEX(0A);
   : NEXT X
   : PRINT "CURSOR CONTROL";HEX(0A0D);"SF #0=RIGHT";HEX(0A0D);"SF #1=LEFT";HEX
     (0A0D);"SF #2=UP";HEX(0A0D);"SF #3=DOWN";HEX(0A01);
   : RETURN
0840 STOP
0850 SELECT PRINT 005(64)
0860 DEFFN'31
   : LOAD DC F"GAMES"