|  | #module 
            "su" 
 #deffunc absolute_value val,int ;絶対値(変数,数値)
 mref 
            _s,16
 mref _s2,1
 _s=_s2*-1
 return
 
 #deffunc 
            power_value val,int,int ;累乗(変数,数値,何乗)
 mref _p,16
 mref 
            _v,1
 mref _v2,2
 mref st,64 
            ;stat=1:指定した数値が変
 ;stat=2:$0~$FFFFFFFFの範囲を超えるため命令終了
 st=0
 
 hoz=_v
 if 
            _v=0 : st=1 : _p=0 : return ;0は時間の無駄
 if _v2=0 : st=1 : _p=1 : 
            return ;数値の0乗は1と定義されている
 if (_v=1)|(_v2=1) : st=0 : _p=_v : return 
            ;無駄無駄
 
 if _v<0 : _v=_v*-1 ;0以下は自然数に直す(詳しいコトは知らない)
 if 
            _v2<0 : _v2=_v2*-1 ;こっちもな
 
 
 _p=_v
 
 repeat 
            _v2-1
 if _p>(2147483647/_v) : _p=2147483647/_v : st=2 : break 
            ;数値が変になりそうだったら打ち止め
 _p=_p*_v
 loop
 if 
            (_v2&1)&(hoz<0) : _p=_p*-1 
            ;-を奇数回掛けたら-にしておく
 return
 
 #deffunc get_far 
            val,int,int,int,int,int ;精度低い二点間の距離(変数,x,y,x2,y2,精度)
 mref abe,16 
            ;しかも遅い
 mref x,1
 mref y,2
 mref x2,3
 mref y2,4
 mref 
            sei,5
 mref st,64
 
 if sei<1 : sei=1
 if sei>1024 : 
            sei=1024
 con=0
 st=0
 y3=y-y2
 x3=x-x2
 xy=(x3*x3)+(y3*y3)
 
 repeat 
            32768,0
 con+=sei
 if xy<=sq.con : abe=con : 
            break
 loop
 
 st=1
 return
 
 #deffunc get_sqrt val,int 
            ;√を求める(変数,数値)
 mref abe,16
 mref s,1
 mref st,64
 st=0
 if 
            s<0 : s=s*-1 : fl=1 : else : fl=0
 if s=0 : st=2 : return
 repeat 32768,0
 if s<=sq.cnt : abe=cnt : 
            break
 loop
 if fl=1 : 
            abe=abe*-1
 st=1
 return
 
 #deffunc init_sqrt 
            ;平方根初期化(返り値stat=1)
 mref st,64 ;平方命令前にやっとく
 st=0 ;激遅が弱点
 dim 
            sq,32768
 repeat 
            32768,0
 tmp=cnt
 sq.cnt=tmp*tmp
 loop
 st=1
 return
 
 #global
 
 
 #module 
            "draw"
 
 #deffunc draw_sq int,int,int,int,int 
            ;正方形描写(x,y,x2,y2,対角線フラグ)
 mref x,0 
            ;(x,y)と(x2,y2)を通る線を対角線として正方形を描く
 mref y,1 ;正確じゃない
 mref 
            x2,2
 mref y2,3
 mref fl,4 
            ;=0,対角線非表示,>0,対角線表示
 x3=x2-x
 y3=y2-y
 xs=x3/2
 ys=y3/2
 x4=xs+ys+x
 y4=ys-xs+y
 x5=xs-ys+x
 y5=ys+xs+y
 if 
            fl>0 {
 line x,y,x2,y2
 line x4,y4,x5,y5
 }
 line 
            x,y,x4,y4
 line x4,y4,x2,y2
 line x2,y2,x5,y5
 line 
            x5,y5,x,y
 return
 
 #global
 
 kurasoftの悪用厳禁の中に入っているやつです
 |  |