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"