#module
#deffunc sqrt int
mref value
mref stt, 64
if value >= 0x7FFFFFFF | (value <= 0) : stt = 0 : return
i = value + 1 / 2
repeat
i.1 = i.0
i.0 = value / i.0 + i.0 / 2
if i >= i.1 : break
loop
stt = i - (i > i.1)
return
#deffunc getdiag int, int, int, int
mref x1, 0 : mref y1, 1 : mref x2, 2 : mref y2, 3
mref stt, 64
sqrt (x1 - x2) * (x1 - x2) + ((y1 - y2) * (y1 - y2))
return
#global
randomize
repeat 15
repeat 4 : rnd p.cnt, 400 : loop
getdiag p, p.1, p.2, p.3
pos 10, cnt * 30 : mes "(" + p + ", " + p.1 + ") (" + p.2 + ", " + p.3 + ")"
pos 200, cnt * 30 : mes "斜辺の長さ=" + stat
loop
stop
|