```REM ***************
REM Target Practice
REM Author: Phaelax
REM ***************

sync on
sync rate 40
hide mouse
randomize timer()

fastest = 99999
nuts = 0

gx = rnd(610)+15
gy = rnd(400)+60

color as dword
color = rgb(rnd(128)+128,rnd(128)+128,rnd(128)+128)

bodies = 0

DO
cls

timerz = timer()

if blowup = 0 then bonus = 4000-(timerz - timestamp)

if timerz > timestamp+4000 or t# > 18
inc bodies
timestamp = timer()
gx = rnd(610)+15
gy = rnd(400)+60
t# = 0
blowup = 0
color = rgb(rnd(128)+128,rnd(128)+128,rnd(128)+128)
endif

if mouseclick() = 1 and flag = 0
flag = 1
if mouseWithin(gx-15,gy-60,gx+15,gy+20)
d = (mousex()-gx)^2 + (mousey()-(gy-50))^2
if d <= 100
inc score, 1000
endif

d = (mousex()-gx)^2 + (mousey()-gy)^2
if d <= 70
inc nuts
dec score, 5000
nutFlag = 1
nutTimer = timer()
endif
blowup = 1
inc score, bonus
inc hits
totalTime = totalTime + (timerz-timestamp)
avgSpeed = totalTime/bodies
if timerz-timestamp < fastest then fastest = timerz-timestamp
else
inc misses
dec score, 500
endif
endif

if mouseclick() = 0 then flag = 0

if blowup = 1 then inc t#,0.3

ink color,0
draw_guy(gx,gy,t#)

if nutFlag = 1
center text 320,46,"Disrespectful nut shot!  -5000"
if nutTimer+4000 < timer() then nutFlag = 0
endif

endif

rem draw mouse cursor
mx = mousex()
my = mousey()
ink rgb(0,255,0),0
line mx-5,my,mx+5,my
line mx,my-5,mx,my+5

rem calculate accuracy
if hits+misses = 0
acc = 0
else
acc = (hits/(hits+misses+0.0))*100.0
endif

center text 320,10,str\$(bonus)
center text 320,30,"Round "+str\$(bodies)

set cursor 0,0
print "Score: ",score
print "Hits: ",hits
print "Misses: ",misses
print "Accuracy: ",acc,"%"
print "Fastest Time: ",fastest
print "Average Speed: ", avgSpeed
print "Disrespectful Hits: ", nuts

sync
LOOP

function draw_guy(x as integer, y as integer, t as float)
g# = -4.0
v = 20

if t > 0
x1 = x+v*cos(270)*t
y1 = y+(v*sin(270)*t - 0.5*g#*t^2)
x2 = x+v*cos(300)*t
y2 = y+(v*sin(300)*t - 0.5*g#*t^2)
x3 = x+v*cos(225)*t
y3 = y+(v*sin(225)*t - 0.5*g#*t^2)
x4 = x+v*cos(315)*t
y4 = y+(v*sin(315)*t - 0.5*g#*t^2)
x5 = x+v*cos(180)*t
y5 = y+(v*sin(180)*t - 0.5*g#*t^2)
x6 = x+v*cos(0)*t
y6 = y+(v*sin(0)*t - 0.5*g#*t^2)
draw_body(x2,y2)
draw_leftArm(x3,y3)
draw_rightArm(x4,y4)
draw_leftLeg(x5,y5)
draw_rightLeg(x6,y6)
else
draw_body(x,y)
draw_leftArm(x,y)
draw_rightArm(x,y)
draw_leftLeg(x,y)
draw_rightLeg(x,y)
endif

endfunction

circle x,y-50,10
endfunction

function draw_leftArm(x,y)
line x,y-34,x-10,y-20
endfunction

function draw_rightArm(x,y)
line x,y-34,x+10,y-20
endfunction

function draw_leftLeg(x,y)
line x,y,x-15,y+20
endfunction

function draw_rightLeg(x,y)
line x,y,x+15,y+20
endfunction

function draw_body(x,y)
line x,y,x,y-40
endfunction

function mouseWithin(x1,y1,x2,y2)
if mousex() > x1 and mousex() < x2 and mousey() > y1 and mousey() < y2 then exitfunction 1
endfunction 0```