//Here is the code.  Colors schemes are listed.
//I would like to have a place to input colors schemes 
//as a variable so any suggestions are welcome.

float strokeX;
float movingLoc;
float movingY;
float movingX;
float movingR;
float movingG;
float movingB;
//Where does the drawing begin?
float startVal = 10;

void setup() {
  size(1080, 720);
  background(127);
}

void draw() {

  displayCircles();
  movingLocz();
  drawSpeed();
  skyway();
}

void displayCircles() {

  //Where does the drawing start and how does it move?
  strokeX = strokeX + random(-1, 1);
  startVal = startVal + 1;
  //How thick is the "line"?
  strokeWeight(((movingY+360)/10+movingX/50)+5);
  //Moving Locations - Where are we drawing the line from and to?
  line(movingX, movingY, movingX, movingY);
  //If you reorder the previous two lines, the dots are larger (??)
}

void movingLocz() {
  //Moving Locations
  movingLoc = random(500);
  movingY = random(720);
}
void drawSpeed() {
  //The number after addition effects the speed it draws across
  movingX = movingX + 0.25;
}

//Pressing the mouse will clear the drawing.
void mousePressed() {
  //Starts over
  background(127);
  draw();
  movingX = 0;
}

//**LIST OF COLORS** as programs you can run to set the values.

void easterMonday() {
  movingR = random(255);
  movingG = random(122, 250);
  movingB = random(200, 255)*random(0.2, 2);
  stroke(movingR, movingG, movingB);
}


void skyway () {
  movingR = random(50, 200);
  movingG = random(50, 200);
  movingB = random(1);
  stroke(movingR, movingG, 50);
}

void jellybeanAutumn () {
  movingR = random(255);
  movingG = random(122, 200);
  movingB = random(200);
  stroke(movingR, movingG, movingB);
   }


  void iceCandy () {
    movingR = random(255);
    movingG = random(122, 250);
    movingB = random(200, 255);
    stroke(movingR, movingG, movingB);
  }

  void sunsetshireFire () {
    movingR = random(255);
    movingG = random(255);
    movingB = random(1);
    stroke(movingR, movingG, movingB);
  }

  void armyGreens () {
    movingR = random(50);
    movingG = random(25, 100);
    movingB = random(200, 255);
    stroke(movingR, movingG, 25);
  }

  void blueValentine () {
    movingR = random(255);
    movingG = random(1);
    movingB = random(255);
    stroke(movingR, movingG, movingB);
  }

  void purpleJungle () {
    movingR = random(100);
    movingG = random(200);
    movingB = random(200, 255);
    stroke(movingR, movingG, 100);
  }

  void cyanturqDark () { 
    movingR = random(200);
    movingG = random(100);
    movingB = random(200, 255);
    stroke(movingR, movingG, 100);
  }

  void yellows () {
    movingR = random(200);
    movingG = random(100);
    movingB = random(200, 255);
    stroke(movingR, movingB, 100);
  }

  void icecreamRainbow () {
    movingR = random(255);
    movingG = random(255);
    movingB = random(255);
    stroke(movingR, movingG, movingB);
  }

  void neonjungleBlue () {
    movingR = random(1);
    movingG = random(255);
    movingB = random(255);
    stroke(movingR, movingG, movingB);
  }

//this was my attempt to make the color selection method easier.
//void colors(float tempR, float tempG, float tempB) {
//Moving Colors - define ranges
//movingR = tempR;
//movingG = tempG;
//movingB = tempB;
//stroke(movingR, movingG, movingB);