to UFO
INIT T erall fs
end
to INIT
window ht cs setsplit 13 ct type word char 27 "0 type word char 27 "p make "STOP 0
pr [* UFO *] type word char 27 "q pr []
pr [1 On screen you see a small UFO]
pr [2 Left = 0 degrees / Straight forward = 90 degrees / right = 180 degrees.] pr []
pr [3 You have to estimate the direction.]
pr [4 The arrow will be adjusted and you see the UFO again.] pr []
pr [5 Then estimate the distance. After pressing ENTER the arrow will be thrown.]
pr [] pr [YOU LIKE TO STOP? TYPE: 999 for direction.]
pr [LOTS OF LUCK! PLEASE PRESS A KEY] if not rc = "O [] cs
setsplit 2 ct pu setpos [-360 -180] pd repeat 2 [fd 442 rt 90 fd 719 rt 90]
make "BT 0 make "PT 0 make "F 30
HOME ht SV setcursor [40 27] type [UFO TD '89]
end
to T
ct HOME
make "X 340 - random 680 make "x :X if :x < 0 [make "x :x * -1]
make "Y 230 - random 400 make "y :Y if :y < 0 [make "y :y * -1]
make "XY se :X :Y flash SCH make "BT :BT + 1 TL if :STOP = 1 [stop] T
end
to flash
ht pu dot :XY setpos :XY bk 5 lt 90 fd 5 rt 90 px repeat 16 [fd 10 rt 90] HOME
end
to HOME
pu setpos [0 -180] st seth 0
end
to SCH
type [Direction (0 - 180) ..:]
make "R rq
if not numberp :R [SCH]
if :R = 999 [make "STOP 1 stop] K HOME ct lt 90 - :R
label "x
type [Distance (0 - 550) :]
make "A rq
if not numberp :A [go "x] if 1000 - :A < 0 [make "A 1000]
ht fd :A * 0.9 pd fd :A * 0.1 lt 150 fd 10 bk 10 lt 60 fd 10 bk 10
make "TF tf
make "Q item 1 :TF if :Q < 0 [make "Q :Q * -1]
make "Q :Q - :x if :Q < 0 [make "Q :Q * -1]
make "Z item 2 :TF if :Z < 0 [make "Z :Z * -1]
make "Z :Z - :y if :Z < 0 [make "Z :Z * -1]
if and (:Q - :F < 0) (:Z - :F < 0) [make "F :F - 2 type char 7 type [Well done!!] make "PT :PT + 1 stop] K make "F :F + 2 type [SORRY!!] if and (:BT > 3) (:PT = 0) [make "F :F + 20] W
end
to SV
lt 60 repeat 5 [fd 50 pd fd 10 pu bk 60 rt 30] HOME
end
to TL
make "SC :PT / :BT * 1000 make "SC round :SC make "SC :SC / 10
setcursor [40 1] type se [POINTS :] :PT SP
type se [from] :BT SP type [turns. SCORE:] SP type se :SC [%] SP SP setcursor [0 29] ct
end
to SP
type char 32
end
to K
seth 0 ht pu setpos :XY bk :F lt 90 fd :F rt 90 px repeat 4 [fd :F * 2 rt 90]
end
to W
repeat 500 []
end
ake "STOP 1 stop] K HOME ct lt 90 - :R
label "x
type [Distance (0