//Yuriy Burshtyko
//Project_9.0.1


Ball[] bur= new Ball[5];
Zone colorZone;

void setup() {
  size(600,500);
  smooth();
  colorZone = new Zone(color(44,219,51));
 
  bur[0] = new Ball(color(255,0,0));
  bur[1] = new Ball(color(5,184,82));
  bur[2] = new Ball(color(16,155,252));
  bur[3] = new Ball(color(255,255,255));
  bur[4] = new Ball(color(0,0,0));
}

void draw() {
  background(255);
  monitor();
  for (int i=0; i<bur.length; i++) {
    bur[i].move();
    bur[i].display();
  }
}
void monitor(){
  colorZone.display();
}

class Ball {
  color ballcolor; 
  float r;  
  float ballX; 
  float ballY; 
  float dx; 
  float dy; 
  
 
 
  Ball(color tempballColor) {
    ballcolor = tempballColor;
    r = 15;
    ballX=random( 50,530);
    ballY=random( 50,420);
    dx = random( - 5,5);
    dy = random( - 5,5);
  }
 
  void move() {
    ballX += dx; 
    ballY += dy; 
 
    
    if (ballX >530 || ballX < 50) {
      dx *= random( - 1, -5);
    }
    
    if (ballY >420 || ballY < 50) {
      dy *= random( - 1, -9);
    }
  }
 
  
  void display() {
    stroke(0);
    fill(ballcolor);
    ellipse(ballX,ballY,r*2,r*2);
  }
 
}

class Zone {
  int zonecolor; 
  float zoneX; 
  float zoneY; 
  float zoneW; 
  float zoneH; 
  boolean hit;

 
  
   Zone(int tempzoneColor) {
    zonecolor = tempzoneColor;
    zoneX=50; 
    zoneY=50; 
    zoneW=500; 
    zoneH=400; 
    hit = true;
  
  }
 
  // Draw the stage
  void display() {
    noStroke();
    fill(zonecolor);
    rect(zoneX,zoneY,zoneW,zoneH);
  }
void zoneCheck(){
    if(hit){
    hit = false;
    zonecolor = color(188,188,188);
    return;
    }
    hit = true;
    zonecolor = color(184,241,250);
    return;
  }
}

