10 REM CHASSE SOUS-MARINE *** 27/8/82 20 PRINT CHR$(12):CURSOR 10,10:PRINT "CHASSE SOUS-MARINE" 30 WAIT TIME 200 40 CURSOR 10,2:INPUT "VOULEZ-VOUS LA REGLE DU JEU ";A$:IF A$="O" THEN 1260 70 PRINT :PRINT TAB(10);"DEGRE DE DIFFICULTE ";:INPUT C:PRINT 80 IF C=1.0 THEN C=11.0 90 IF C=2.0 THEN C=26.0 100 IF C=3.0 THEN C=51.0 110 X0=INT(151.0*RND(0.0)) 120 Y0=INT(151.0*RND(0.0)) 130 Z0=INT(RND(C)) 140 INPUT "POINT DE DEPART : X= ";X1:INPUT " Y= ";Y1:PRINT 150 X1=INT(X1):Y1=INT(Y1) 170 IF ABS(X1-X0)<4.0 THEN 1255 180 INPUT "SONAR (S) TIR (T) DEPLACEMENT (D) ";D$:IF D$="S" THEN PRINT :GOTO 220 190 IF D$="T" THEN PRINT :GOTO 390 200 IF D$="D" THEN PRINT :GOTO 255 210 PRINT " ERREUR...":GOTO 180 220 PAR1=X0-X1:PAR2=Y0-Y1:PAR3=Z0:GOSUB 10000:E=RES1:F=RES2 240 IF F>90.0 THEN 370 245 IF X0=X1 THEN 1450 250 PRINT "DISTANCE SONAR : ";F;" MILLES.":GOTO 170 255 PRINT "POSITION ACTUELLE X= ";X1;" Y= ";Y1 260 O=0.0:INPUT "COORDONNEES D'ARRIVEE X= ";X2:INPUT " Y= ";Y2 270 X2=INT(X2):Y2=INT(Y2):PRINT 290 PAR1=X1-X2:PAR2=Y1-Y2:GOSUB 10000:G=RES1 300 IF G<=10.0 THEN 330 310 IF F<=90.0 THEN 340 320 IF G>25.0 THEN 360 330 X1=X2:Y1=Y2:GOTO 220 340 IF G<=10.0 THEN 330 350 PRINT "MAXIMUM 10 MILES.":GOTO 260 360 PRINT "MAXIMUM 25 MILES.":GOTO 260 370 PRINT "PAS D'ECHO SONAR.DISTANCE SUPERIEURE A 90 MILES.":GOTO 170 390 INPUT "COORDONNEES DE L'OBJECTIF X= ";X3:INPUT " Y= ";Y3:PRINT 400 Z3=0.0 420 IF C<>0.0 THEN INPUT " Z= ";Z3 430 PAR1=X1-X3:PAR2=Y1-Y3:PAR3=Z1-Z3:GOSUB 10000 440 E=RES1:F=RES2 450 IF F<=65.0 THEN 470 460 PRINT "PORTEE MAXIMALE 65 MILES.":GOTO 390 470 IF X3<>X0 OR Y3<>Y0 OR Z3<>Z0 THEN 550 500 PRINT "SOUS-MARIN COULE.BRAVO..." 510 INPUT "UNE AUTRE PARTIE ";A$:IF A$="O" THEN PRINT CHR$(12):GOTO 30 520 END 550 PRINT "OBJECTIF MANQUE !!!":PRINT "LE SOUS-MARIN RIPOSTE ...."; 560 PRINT "ECHO SONAR D'UNE TORPILLE." 565 H=0.0:S1=65.0 570 O=O+1.0:ON O GOTO 590,600,610,620,625 590 P=12.0:GOTO 630 600 P=8.0:GOTO 630 610 P=4.0:GOTO 630 620 P=2.0:GOTO 630 625 P=1.0 630 X5=X1-P+INT(2.0*P*RND(0.0)) 640 Y5=Y-P+INT(P*2.0*RND(0.0)) 650 X5=ABS(X5):Y5=ABS(Y5) 670 PRINT "DISTANCE :"; 680 PAR1=X5-X0:PAR2=Y5-Y0:GOSUB 10000:R=RES1 690 X=ABS((X0-X5)/R):Y=ABS((Y0-Y5)/R) 710 IF X0>X5 THEN 730 720 X6=X0+X:GOTO 740 730 X6=X0-X 740 IF Y0>Y5 THEN 760 750 Y6=Y0+Y:GOTO 770 760 Y6=Y0-Y 770 Z6=Z0-Z0/4.0:N=0.0 790 FOR I=1.0 TO 14.0:PAR1=X1-X6:PAR2=Y1-Y6:PAR3=Z1-Z6:GOSUB 10000 800 R=RES1:S=RES2 820 N=N+1.0 830 IF X0>X5 THEN 850 840 X6=X6+X:GOTO 860 850 X6=X6-X 860 IF Y0>Y5 THEN 880 870 Y6=Y6+Y:GOTO 890 880 Y6=Y6-Y 890 Z6=Z6-Z0/4.0 900 IF Z6<0.0 THEN Z6=0.0 910 IF Y6<0.0 THEN Y6=0.0 920 IF X6<0.0 THEN X6=0.0 930 IF ABS(X1-X6)>0.5 THEN 980 940 IF ABS(Y1-Y6)>0.5 THEN 980 950 IF Z6<>0.0 THEN 980 960 PRINT "...VOUS ETES COULE ..." 970 GOTO 510 980 IF N<5.0 THEN 820 982 IF S-S1>3.5 THEN 1020 984 IF S=S1 THEN H=H+1.0 986 IF H>3.0 THEN 1020 988 S1=S 990 PRINT S, 1000 N=0.0:NEXT I 1010 PRINT 1020 PRINT "LA TORPILLE VOUS A MANQUE..." 1030 X7=RND(10.0)-5.0:Y7=RND(10.0)-5.0:Z7=RND(10.0)-5.0 1150 IF C=0.0 THEN Z7=0.0 1160 X0=(151.0+X0+INT(X7)) MOD 151.0 1170 Y0=(151.0+Y0+INT(Y7)) MOD 151.0 1175 IF C=0.0 THEN Z=0.0:GOTO 220 1180 Z0=(C+Z0+INT(Z7)) MOD C 1250 GOTO 220 1255 IF ABS(Y1-Y0)>4.0 THEN 180 1256 K=INT(10.0*RND(0.0)):IF K>6.0 THEN 180 1258 PRINT "LE SOUS-MARIN ATTAQUE ....";:O=O+1.0:GOTO 560 10000 RES1=SQR(PAR1*PAR1+PAR2*PAR2):RES2=SQR(RES1*RES1+PAR3*PAR3):RETURN