1 REM SPACE SHIP GAME 2 REM B=IMAGE TO CRT,Z=IMAGE VECTOR LENGTH,A=ANGLE 4 DIM D[23],E[23] 5 DIM B[64] 6 DIM H[23],U[23] 7 DIM Z[23],A[23] 8 LET K=0 10 LET X1=200 11 REM SPACE SHIP PRELINM 12 PRINT "SPACE SHIP GAME :" 13 PRINT "SW 3 RT,SW 4 LEFT,SW 10 UP,SW 11 DOWN" 14 CALL (30,B[1],50,0) 15 CALL (31,100,110,24) 16 CALL (31,25,25,25) 17 CALL (31,240,50,26) 18 CALL (31,50,200,27) 20 LET Y1=200 21 LET H=0 22 LET N2=1 23 LET M1=1 24 LET M2=1 30 LET V1=0 40 LET V2=0 45 GOTO 9100 46 LET M1=0 50 LET X2=X1+V1 51 CALL (40,3,K) 52 CALL (40,4,K1) 53 CALL (40,10,K2) 54 CALL (40,11,K3) 55 IF K<0 THEN 57 56 GOTO 59 57 LET M1=1 58 LET V1=V1+1 59 IF K1<0 THEN 61 60 GOTO 65 61 LET V1=V1-1 62 LET M1=1 65 IF K2<0 THEN 70 67 GOTO 75 70 LET A2=A2+15 71 GOTO 8000 75 IF K3<0 THEN 80 77 GOTO 85 80 LET A2=A2-15 81 GOTO 8000 85 LET Y2=Y1+V2 100 LET Z=Y2-128 101 LET Z1=SGN(Z) 102 LET Z=Z*Z1 110 LET W=X2-128 111 LET W1=SGN(W) 112 LET W=W*W1 150 LET A=ATN(Z/W) 200 LET G=20*(1/((W/20*COS(A))^2)) 202 LET G=G*1.00000E-06 250 LET F1=-1*W1 260 LET F2=-1*Z1 300 LET V1=V1+COS(A)*G*F1 310 LET V2=V2+SIN(A)*G*F2 350 LET X1=X1+V1 360 LET Y1=Y1+V2 370 IF X1>256 THEN 380 375 GOTO 400 380 LET X1=X1-260 390 GOTO 370 400 IF X1<0 THEN 410 405 GOTO 420 410 LET X1=X1+260 420 IF Y1>256 THEN 430 425 GOTO 440 430 LET Y1=Y1-60 440 IF Y1<0 THEN 445 442 GOTO 450 445 LET Y1=Y1+260 450 GOTO 500 500 GOTO 3900 512 CALL (31,C,C1,2) 3900 REM SET UP IMAGE ARRAYS FOR CORRECT ANGLE AND BLASH 3910 REM SEE IF ROCKET IS BLACKING 3920 IF M1=0 THEN 3950 3921 REM IS BLASKING 3925 REM INSERT ROCKET TALE 3930 FOR I=16 TO 23 3931 LET D[I]=H[I] 3932 LET E[I]=U[I] 3933 NEXT I 3935 GOTO 3960 3950 REM LOAD ZEROS FOR TALE 3951 FOR I=7 TO 23 3952 LET D[I]=-259 3953 LET E[I]=-259 3954 NEXT I 3955 GOTO 3960 3960 REM LOAD IMAGE OF SHIP 3961 FOR N=1 TO 15 3962 LET D[N]=H[N] 3963 LET E[N]=U[N] 3964 NEXT N 3965 GOTO 4100 4000 REM FILL IN SPACE SHIP BODY 4100 REM POS 1 4110 FOR I=1 TO 23 4120 CALL (31,X1+D[I],Y1+E[I],I) 4130 NEXT I 4200 GOTO 46 8000 REM : ROTATE SHIP 8010 REM A2= ADDED ANGLE AND Z(N)=VECTOR LENGTH AND A(N)= 8020 REM NORMAL ANGLE 8030 FOR N=1 TO 23 8040 LET P2=A2+A[N] 8050 LET P2=P2*3.14/180 8060 LET H[N]=Z[N]*COS(P2) 8070 LET U[N]=Z[N]*SIN(P2) 8080 NEXT N 8090 GOTO 85 9000 REM FILL UP SPACE SHIP IMMAGE ARRAY 9100 REM LOAD UP IMAGE FROM DATA ARRAY 9101 REM IMAGE 1 IS AT ZERO DEGREES 9110 FOR I=1 TO 23 9120 READ H[I] 9130 NEXT I 9140 REM LOAD VERT POST 1 9141 FOR I=1 TO 23 9150 READ U[I] 9160 NEXT I 9165 REM COMPUTE VECTOR LENGTH AND ANGLE FOR ROTATION 9170 FOR N=1 TO 23 9175 LET Z[N]=(H[N]^2+U[N]^2)^.5 9180 LET A[N]=180*ATN(U[N]/H[N])/3.14 9181 REM CHECK FOR BOTH VECTOR VAUES=MINUS 9182 IF H[N]<0 AND U[N]<0 THEN 9184 9183 GOTO 9186 9184 LET A[N]=A[N]+180 9185 GOTO 9190 9186 REM CHECK FOR X=NEG AND Y=POS 9187 IF H[N]<0 AND U[N]>0 THEN 9189 9188 GOTO 9190 9189 LET A[N]=A[N]+180 9190 NEXT N 9800 REM DATA ARRAY CONTAINING SPACE SHIP IMAGE 9810 DATA -10,-5,1.00000E-03,5,10,5,10,10 9811 DATA -5,1.00000E-03,5,10,5,10,10 9812 DATA 15,20,25,30,20,25,20,25 9820 REM VERT DATA 9821 DATA 1.00000E-03,5,5,5,5,10,10,15,-5 9822 DATA -5,-5,-5,-10,-10,-15 9823 DATA 1.00000E-03,5,5,1.00000E-02,1.00000E-02,1.00000E-02,-5,-5 9870 LET A2=0 9899 GOTO 46 9999 END g