^r4/lib/gui.txt
#mx#my
:ran | proporciona un numero aleatorio tal que 0 < n < 1 rand 15 >> abs ;
:calcula | d a b -- c + 2 / ran 0.5 - pick2 *. + ;
:lightning | x1 y1 x2 y2 d -- pick4 pick4 pick4 pick4 pick4 5 <? ( >r 2over op 2dup line r> )( pick4 pick3 calcula 'mx ! pick3 pick2 calcula 'my ! 2 / | x1 y1 x2 y2 d2 >r 2swap mx my r lightning 4drop drop mx my r> lightning ) 4drop drop ;
: $000000 paper cyan show cls 50 240 750 240 400 lightning 4drop drop 'exit >esc< ;
:calc | a b d -- c
>r + 2/ ran 0.5 - r> *. + ;
:light | x1 y1 x2 y2 d --
8 <? ( drop op line ; )
>r
2swap
pick3 pick2 r calc dup 'mx !
pick3 pick2 r calc dup 'my ! | x2 y2 x1 y1 mx my
r 2/ light
mx my r> 2/ light ;
^r4/lib/gui.txt
:ran | proporciona un numero aleatorio tal que 0 < n < 1
rnd $ffff and ;
:calc | d a b -- c
>r + 2/ ran 0.5 - r> *. + ;
:light | x1 y1 x2 y2 d --
5 <? ( drop op line ; )
>r 2swap pick3 pick2 r calc
pick3 pick2 r calc 2swap 2over r 2/ light r> 2/ light ;
: $000000 paper cyan show cls 50 240 750 240 400 light 'exit >esc< ;