INPUT "How many rope segments? ",segments
INPUT "How long should each segment be? ",length
SYNC ON:SYNC RATE 0:BACKDROP ON:COLOR BACKDROP RGB(000,000,000):RANDOMIZE TIMER()
TYPE segT
x1#,y1#,x2#,y2#
length
angle#
ENDTYPE
DIM segment(segments) AS segT
segment(0).x2# = SCREEN WIDTH()/2
segment(0).y2# = SCREEN HEIGHT()/2
FOR x = 1 TO segments
segment(x).length = length
segment(x).angle# = RND(30)
NEXT x
DO
IF MOUSECLICK()
segment(0).x1# = MOUSEX()
segment(0).y1# = MOUSEY()
segment(0).angle# = ATANFULL(segment(0).x2#-segment(0).x1#,segment(0).y2#-segment(0).y1#)
ENDIF
segment(0).angle# = CURVEANGLE(0,segment(0).angle#,500)
FOR x = 1 TO segments
segment(x).x1# = segment(x-1).x2#
segment(x).y1# = segment(x-1).y2#
segment(x).x2# = NEWXVALUE(segment(x).x1#,segment(x).angle#,segment(x).length)
segment(x).y2# = NEWZVALUE(segment(x).y1#,segment(x).angle#,segment(x).length)
LINE segment(x).x1#,segment(x).y1#,segment(x).x2#,segment(x).y2#
segment(x).angle# = CURVEANGLE(segment(x-1).angle#,segment(x).angle#,100)
NEXT x
SYNC
LOOP