Randomize Timer():Sync On: Sync Rate 60:Autocam Off:Color BackDrop 0:RL=200:RH=250:Make Object Plain 1,50,50:Pitch Object Down 1,90:Position Object 1,0,-50,150
Global Miss=0
Global Hits=0
Global Speed#=.2
Do:If rnd(100)=1:Ob=Make_Alpha_Block(RL,RH,Chr$(Rnd(25)+65)):If Ob>0 then Position Object Ob,Rnd(100)-Rnd(100),200,Rnd(50)+Rnd(50)+120
   Endif:k$=Inkey$():Move_Alpha_Block(RL,RH,k$):Ink Rgb(255,255,255),0:Set Cursor 0,0:Print "Hits: ";Hits:Print "Miss: ";Miss:Sync
Loop
Function Make_Alpha_Block(Range_L,Range_H,Letter$)
   For ObjectID= Range_L To Range_H:If Object Exist(ObjectID)=0 Then Exit
   Next ObjectID:If ObjectID>Range_H then ExitFunction 0
   Letter$=Upper$(Left$(Letter$,1)):If Object Exist(ObjectID) Then Delete Object ObjectID
   Make Object Triangle ObjectID,0,0,0,0,.1,0,0,0,0:Make Mesh From Object ObjectID,ObjectID:Delete Object ObjectID
   Make Object Cube ObjectID,15:Add Limb ObjectID,1,ObjectID:Delete Mesh ObjectID:Create Bitmap 1,128,128:Set Current Bitmap 1:Ink Rgb(0,0,255),0:Box 0,0,127,127:Ink Rgb(255,0,0),0
   ts=Text Size():Set Text Size 120:Center Text 64,4,Letter$:Set Text Size ts:Get Image ObjectID,0,0,127,127,1:Texture Object ObjectID,ObjectID:Set Current Bitmap 0:Delete Bitmap 1:ltr#=asc(Letter$):ltr#=ltr#/100.0:Offset Limb ObjectID,1,ltr#,0,0:Hide Limb ObjectID,1
EndFunction ObjectID
Function Move_Alpha_Block(Range_L,Range_H,Letter$)
   Letter$=Upper$(Left$(Letter$,1)):ltr#=Asc(Letter$):ltr#=ltr#/100.0:mx#=MouseMoveX():my#=MouseMoveY():For i = Range_L to Range_H:If Object Exist(i)
   Position Object i, Object Position X(i)+mx#*(ltr#=Limb Offset X(i,1)),Object Position Y(i),Object Position Z(i)-my#*(ltr#=Limb Offset X(i,1)):Position Object i,Object Position X(i),Object Position Y(i)-.2,Object Position Z(i):Miss=Miss+(Object Position Y(i)<-150):Hits=Hits+(Object Collision(i,1)<>0):Speed#=Speed#+.01*(Object Collision(i,1)<>0):If Object Position Y(i)<-150 Then Delete Object i Else If Object Collision(i,1) Then Delete Object i
   Endif:Next i
EndFunction