1 REM *** CAPSULES SPATIALES *** 27/8/82 90 DIM X(2.0),Y(2.0),V(2.0),W(2.0),M(2.0),N(2.0),C(2.0) 95 MODE 6A:COLORG 0 5 3 15:GOSUB 1000:C(1.0)=5.0:C(2.0)=3.0 100 COLORT 7 0 0 0 110 X1=8.0:Y1=16.0:R1=2.0 120 X2=24.0:Y2=Y1:R2=R1 130 FOR J=1.0 TO 2.0 140 X(J)=X1-2.0*R1:Y(J)=Y1 150 V(J)=0.0:W(J)=1.7:M(J)=500.0:N(J)=1000.0 160 NEXT:W(2.0)=-W(1.0) 190 PRINT CHR$(12):POKE #75,32 200 PRINT TAB(20);"CAPSULE SPATIALE" 210 WAIT TIME 200:POKE #74,0:POKE #75,255 250 PRINT "VITESSE (m/s) "; 260 PRINT TAB(25);"CARBURANT (L)" 270 PRINT TAB(20);"RESTANT";TAB(30);"A BRULER" 300 J=1.0:GOSUB 340 310 J=2.0:GOSUB 340 320 GOTO 300 340 X5=X1:Y5=Y1:R5=R1 350 GOSUB 770 360 X5=X2:Y5=Y2:R5=R2 370 GOSUB 770 380 X(J)=X(J)+V(J) 390 Y(J)=Y(J)+W(J) 400 GOSUB 880:IF N<0.0 THEN 680 410 XX=80.0+4.0*X(J):YY=20.0+4.0*Y(J):IF XX<0.0 OR XX>XMAX OR YY<0.0 OR YY>XMAX THEN PRINT CHR$(12):PRINT "LE JOUEUR ";J;"EST ELIMINE":END 430 DOT XX,YY C(J) 470 V5=SQR(V(J)*V(J)+W(J)*W(J)) 480 PRINT (V5*10000.0); 490 PRINT TAB(20);N(J);:CURSOR 30,CURY 520 IF N(J)>0.0 THEN 540 530 PRINT 0.0;:C=0.0:GOTO 610 540 INPUT C:CURSOR 0,CURY:PRINT SPC(55);:CURSOR 0,CURY 550 Q=ABS(C) 560 IF Q>30.0 THEN Q=30.0 570 IF Q<=N(J) THEN 590 580 Q=N(J) 590 IF C=0.0 THEN 610 600 C=Q*SGN(Q):N(J)=N(J)-Q 610 L=W(J)/V5 620 T2=ASIN(L) 630 IF V(J)<0.0 THEN T2=PI-T2 640 V5=V5+C*10.0/(M(J)+N(J)) 650 V(J)=COS(T2)*V5 660 W(J)=SIN(T2)*V5 670 RETURN 680 PRINT 690 PRINT "VOUS AVEZ TOUCHE A LA VITESSE DE "; 710 X=SQR(V(J)*V(J)+W(J)*W(J)) 720 PRINT X*1000.0; 730 PRINT " m/s" 740 PRINT 750 END 770 X5=X(J)-X5 780 Y5=Y(J)-Y5 790 X=SQR(X5*X5+Y5*Y5) 800 L=Y5/X 810 T1=ASIN(L) 820 IF X5<0.0 THEN T1=PI-T1 830 M=R5*R5*R5 840 G=1.3*M/X/X 850 V(J)=V(J)-COS(T1)*G 860 W(J)=W(J)-SIN(T1)*G 870 RETURN 880 X5=X1:Y5=Y1:R5=R1 890 GOSUB 920 900 IF N<0.0 THEN RETURN 910 X5=X2:Y5=Y2:R5=R2 920 X5=X(J)-X5 930 Y5=Y(J)-Y5 940 X=SQR(X5*X5+Y5*Y5) 950 N=-1.0:IF X>R5 THEN N=1.0 960 RETURN 1000 FOR I=0.0 TO 2.0*PI STEP 1E-2 1010 DOT 80+32+8*COS(I),84+8*SIN(I) 15 1020 DOT 176+8*COS(I),84+8*SIN(I) 15 1025 NEXT 1030 RETURN