:If C=25:Then

:Line(X,Z+1,X,62,0

:L1≥0 and 1≥abs(X-1-L2

:min(6not(Ans)+AnscumSum(not(0Ans→C

:If Ans≠6:Then

:Text(-1,int(L1(Ans)),L2(Ans),”·

:E9→L1(Ans

:min(L1-randInt(4,8→L1(C

:randInt(24,70→L2(C

:End:End

The line :Lbl G2 may also be omissible at this point.

In case you don't recognize it, this is your :If K section synthesized with GD through GH.

]]>Use A,B,C for garbage vars

Use S for score, and T for how much the score increases

Use X for ship X value

Use Z for ship Y value

Use M,V for how fast the ship moves

Use D,E,F,G,H for NME Y value

Use N,O,P,Q,R for NME X values

Use L for how fast the ships drop

Use W for increasing L

Use I,U for detecting if a NME reaches the end

Use J for resetting NME’s

Use K to detect if you shot

` ``:Lbl GD :Text(-1,int(D),N,” //1 space :min({E-A,F-A,G-A,H-A→D:B→N :Goto G2 :Lbl GE :Text(-1,int(E),O,” :min({D-A,F-A,G-A,H-A→E:B→O :Goto G2 :Lbl GF :Text(-1,int(F),P,” :min({D-A,E-A,G-A,H-A→F:B→P :Goto G2 :Lbl GG :Text(-1,int(G),Q,” :min({D-A,E-A,F-A,H-A→G:B→Q :Goto G2 :Lbl GH :Text(-1,int(H),R,” :min({D-A,E-A,F-A,G-A→H:B→R :Goto G2`

` ``:Lbl A //If there are any references to Label G0, change them to A, otherwise lose the label. :47→X:-54→Z :randInt(0,-8→D:randInt(24,70→N :randInt(-13,-21→E:randInt(24,70→O :randInt(-26,-34→F:randInt(24,70→P :randInt(-39,-47→G:randInt(24,70→Q :randInt(-52,-60→H:randInt(24,70→R :Vertical 14 :Vertical 76 :For(A,1,61,3 :Pt-On(randInt(1,11),-A,3 :Pt-On(randInt(77,92),-A,3 :End :Text(-1,28,33,”READY :rand(34 :Text(-1,28,41,”SET :rand(34 :Text(-1,28,41,”GO! :rand(16 :Text(-1,28,33,” //6 spaces :Lbl G :Line(X,Z-1,X-2,Z-7,0 :Line(X,Z-1,X+2,Z-7,0 :Line(X,Z,X,Z-8,0 :getKey→C :V-M((Ans=24)+(Ans=26→V :If C=34:Delvar V :If C=23:Then :Text(-1,28,30,”PAUSED :Text(36,32,”SCORE:”,S :Pause :For(θ,7,9,2 :Text(-1,4θ,23+θ,” //6 spaces :End :End :X+V→X :C=25→K :If Ans :Vertical X :If X≥74 or X≤16 :Goto E :Line(X,Z-1,X-2,Z-7 :Line(X,Z-1,X+2,Z-7 :Line(X,Z,X,Z-8 :Lbl B //Again, any references to G1 must be replaced by B. :S+T→S :If D≥L:Then :Text(int(D-L),N,” :Text(int(D),N,”V :End :If E≥L:Then :Text(int(E-L),O,” :Text(int(E),O,”V :End :If F≥L:Then :Text(int(F-L),P,” //3 spaces :Text(int(F),P,”V :End :If G≥L:Then :Text(int(G-L),Q,” :Text(int(G),Q,”V :End :If H≥L:Then :Text(int(H-L),R,” :Text(int(H),R,”V :End :If K:Then: :randInt(4,8→A :randInt(24,70->B :Line(X,Z+1,X,Ymax,0 //Do so only if, as with mine, your graph window is 94=Xmax and 62=Ymax. :If (N≤X)(X≤N+2)(D≥0:Goto D //Any occurences of GD, GE, GF, GG, and GH must be replaced with D, E, F, G, and H. :If (O≤X)(X≤O+2)(E≥0:Goto E :If (P≤X)(X≤P+2)(F≥0:Goto F :If (Q≤X)(X≤Q+2)(G≥0:Goto G :If (R≤X)(X≤R+2)(H≥0:Goto H :Else:End :Lbl C //Again, references to G2 must be replaced by C :D+L→D:E+L→E:F+L→F:G+L→G:H+L→H:L+W→L :If D≥58 or E≥58 or F≥58 or G≥58 or H≥58:Goto E :Goto G`

I probably missed some, but I saved a few bytes with the text displaying and labels, at the least.

]]>:Lbl G0

:47→X:-54→Z

:seq(13X,X,0,4

:-randInt(Ans,Ans+8→L1

:randInt(24,70,5→L2

:Vertical 14

:Vertical 76

:For(A,1,61,3

:Pt-On(randInt(1,11),-A,3

:Pt-On(randInt(77,92),-A,3

:End

:For(A,1,4

:Text(-1,28,33,sub(”READY·SET··GO!······”,5A-4,5

:rand(34-18(A=4

:End

:Lbl G

:Line(X,Z-1,X-2,Z-7,0

:Line(X,Z-1,X+2,Z-7,0

:Line(X,Z,X,Z-8,0

:getKey→C

:If Ans=23:Then

:Text(-1,28,30,”PAUSED

:Text(36,32,”SCORE:”,S

:Pause

:Text(-1,28,30,”······

:Text(-1,36,32,”······

:End

:V-M(Ans=24)+M(Ans=26

:Ans(C≠34→V

:X+Ans→X

:If C=25

:Vertical Ans

:If 29≤abs(Ans-45

:Goto E

:Line(Ans,Z-1,Ans-2,Z-7

:Line(Ans,Z-1,Ans+2,Z-7

:Line(Ans,Z,Ans,Z-8

:Lbl G1

:S+T→S

:For(A,1,5

:L1(A

:If Ans≥L:Then

:Text(int(Ans-L),L2(A),”···

:Text(int(Ans),N,”V

:End:End

Let's see Lbl GD through Lbl GH before I get started on the :If K:Then block.

:Lbl G2

:L1+L→L1:L+W→L

:If max(L1≥58:Goto E

:Goto G

` ``:Lbl G0 :47→X:-54→Z :randInt(0,-8→D:randInt(24,70→N :randInt(-13,-21→E:randInt(24,70→O :randInt(-26,-34→F:randInt(24,70→P :randInt(-39,-47→G:randInt(24,70→Q :randInt(-52,-60→H:randInt(24,70→R :Vertical 14 :Vertical 76 :For(A,1,61,3 :Pt-On(randInt(1,11),-A,3 :Pt-On(randInt(77,92),-A,3 :End :Text(-1,28,33,”READY :rand(34 :Text(-1,28,33,” SET :rand(34 //1 space either side of ‘SET’ :Text(-1,28,33,” GO! and ‘GO!’ :rand(16 :Text(-1,28,33,” //6 spaces :Lbl G :Line(X,Z-1,X-2,Z-7,0 :Line(X,Z-1,X+2,Z-7,0 :Line(X,Z,X,Z-8,0 :getKey→C :V-M(Ans=24)+M(Ans=26→V :If C=34:0→V :If C=23:Then :Text(-1,28,30,”PAUSED :Text(36,32,”SCORE:”,S :Pause :Text(-1,28,30,” //6 spaces :Text(-1,36,32,” //6 spaces :End :X+V→X :C=25->K :If Ans :Vertical X :If X≥74 or X≤16 :Goto E :Line(X,Z-1,X-2,Z-7 :Line(X,Z-1,X+2,Z-7 :Line(X,Z,X,Z-8 :Lbl G1 :S+T→S :If D≥L:Then :Text(int(D-L),N,” :Text(int(D),N,”V :End :If E≥L:Then :Text(int(E-L),O,” :Text(int(E),O,”V :End :If F≥L:Then :Text(int(F-L),P,” //3 spaces :Text(int(F),P,”V :End :If G≥L:Then :Text(int(G-L),Q,” :Text(int(G),Q,”V :End :If H≥L:Then :Text(int(H-L),R,” :Text(int(H),R,”V :End :If K:Then: :randInt(4,8→A :randInt(24,70->B :Line(X,Z+1,X,62,0 :If (N≤X)(X≤N+2)(D≥0:Goto GD :If (O≤X)(X≤O+2)(E≥0:Goto GE :If (P≤X)(X≤P+2)(F≥0:Goto GF :If (Q≤X)(X≤Q+2)(G≥0:Goto GG :If (R≤X)(X≤R+2)(H≥0:Goto GH :Else:End :Lbl G2 :D+L→D:E+L→E:F+L→F:G+L→G:H+L→H:L+W→L :If D≥58 or E≥58 or F≥58 or G≥58 or H≥58:Goto E :Goto G`