rem --------
rem Doodles!
rem For DBC Doodle Challenge
rem by Irojo
rem --------
 
`##############
`=Program Info=
`##############
`
`Designed By Irojo
`Sin and Cos teaching credit to OBese87
`Average screen fps()=1,000
`Ovals have random shape to them, radius, and location.
`The lines can either be left to right, or right to left.
`They start at the top, and descend to the bottom.
`Random Dots are placed on the screen.
`Sometimes squiggly lines will appear.
 
`Includes 3 Functions.
`2 of which have a do...loop
`
`Includes 1 Main loop.
`Includes 0 Gotos
`
`Includes Random Ink texturing.
`-----------
 
 
 
 
`###############
`=Main Settings=
`###############
 
sync on
sync rate 0
hide mouse
cls rgb(0,0,0):ink rgb(255,255,255),0
 
`-----------
 
`###########
`=Main Loop=
`###########
 
redo:
cls
do
`sync
  inktexture=rnd(40)
  ink rgb(200+inktexture,200+inktexture,200+inktexture),0
  `The prior two give the ink a texture. It gives a feeling of thickness.
  setx=rnd(609)
  sety=rnd(400)
  `These two Give a random X and Y, so the line can only be so long.
   l_to_rbox(setx,sety,setx+rnd(80)+20,sety+rnd(10)+50)
   `Makes left to right line.
  `sync
  setx=rnd(679)
  `Same reason as before.
  random=rnd(80)
  `helps gives random location.
  r_to_lbox(setx,rnd(400),setx-random-20,rnd(400)+rnd(10)+80)
  oval=rnd(3)
  if oval=1
   rndoval(rnd(479),rnd(400))
  endif
  dotchance=rnd(2)
  if dotchance=1 then dot rnd(679),rnd(400)
  inc rounds,1
  if rounds=30 then exit
  `sync
loop
sync
wait key
rounds=0
cls
gosub redo
end
`--------Generates Random Lines and dots and ovals.
 
`||||||||||||||||||||||||||||||||||||||||||||||||||
 
 
 
 
`######################
`======Functions=======
`######################
 
`------- Left to right box == Makes a left to right line.
function l_to_rbox(bx,by,tx,ty)
 disablex=0
 disabley=0
 curve=rnd(1)
 lx#=bx
 ly#=by
 do
   what=rnd(4)
   if curve=1 and disably=0 then inc bx#,.4
   if curve=1 then dec ly#,.2
   if disablex=0 and what>0 then inc lx#,.2
   if disablex=0 and what=0 then inc lx#,.3
   if what=4 then inc ly#,.9
   if what<>4 then inc ly#,.6
   if what=3
    for z=1 to 10
      dec ly#,.05
      dot lx#,ly#
      `sync
    next z
   endif
   dot lx#,ly#
   if lx#>=tx-.7 then disablex=1
   if ly#>=ty-.7 then disabley=1
   if disabley=1 and disablex=1 then exit
 `sync
 loop
endfunction
`----------
 
`----------function right to left box ==Makes a line going right to left
function r_to_lbox(bx,by,mx,ty)
 disablex=0
 disabley=0
 bx#=bx
 by#=by
 curve=rnd(1)
 extra_curve=rnd(4)
 Do
   dot bx#,by#
   direct=rnd(4)
   if curve=1 and disably=0 then dec by#,.4
   if extra_curve=1 and disabley=0 then dec by#,2
   if direct=1 then dec bx#,1 else dec bx#,.1
   if direct=1 then inc by#,1 else inc by#,.1
   if bx#<=mx then disablex=1
   if by#>=ty# then disabley=1
   if disablex=1 and disabley=1 then exit
 `sync
 Loop
endfunction
`----------
 
 
`----------function rndoval(x,y) ===Makes oval or circle
function rndoval(x,y)
 r= RND(10)+3
 For dg= 0 to 360
   ax= sin(dg+RND(20))*r +x
   ay= cos(dg)*r +y
   `sync
   dot ax,ay
 Next dg
endfunction
`----------