submission by jtoy
function linspace(a,b,n) {
    if(typeof n === "undefined") n = Math.max(Math.round(b-a)+1,1);
    if(n<2) { return n===1?[a]:[]; }
    var i,ret = Array(n);
    n--;
    for(i=n;i>=0;i--) { ret[i] = (i*b+(n-i)*a)/n; }
    return ret;
}
function B(x,y) {
  this.x = x
  this.y = y
  this.show = function(){
   fill(255,0,0)
   rect(this.x-17,this.y+13,35,50)
   //head
   spikes =linspace(PI,TWO_PI,8)
   for(i=0;i<spikes.length;i++){
    ellipse(this.x-100+(i*10),this.y+sin(i)*10,10,10)
   
   }
   fill(248,223,201)
   ellipse(this.x,this.y,30,30)
  
  }
 this.move = function(){
 }
}
function Jelly(x,y,scale=1) {
  this.x = x
  this.y = y
  this.s = scale  //scale
  this.show = function(){
   fill(255,0,0)
   noStroke()
   ellipse(this.x,this.y,50*this.s,50*this.s)
   ellipse(this.x+20,this.y+15,30*this.s,30*this.s)
   ellipse(this.x-20,this.y+15,30*this.s,30*this.s)
   ellipse(this.x,this.y-25,30*this.s,30*this.s)
   fill(255)
   ellipse(this.x-5,this.y-30,5*this.s,5*this.s)
   ellipse(this.x+5,this.y-30,5*this.s,5*this.s)
  }
 this.move = function(){
 }
}

var speed = 1
function setup(){
  var myCanvas = createCanvas(windowWidth,windowHeight); //you must keep this line unmodified
  b = new B(400,400)
  jelly = new Jelly(200,400)
  stars=[]
  background(0)
  for(i=0;i<1000;i++){
    star = {x:random(width),y:random(height),r:random(1,5)}
    //ellipse(star.x,star.y,star.r,star.r)
    stars.push(star)
  }
  jelly.show()
  b.show()
  noLoop()
}
function draw(){
  background(0)
  fill(250,200,0)
  for(i=0;i<stars.length;i++){
    star=stars[i]
    ellipse(star.x,star.y,star.r,star.r)
  }
  if(keyIsPressed === true){
    if(keyCode == LEFT_ARROW){
      b.x -=speed
    }else if(keyCode == RIGHT_ARROW){
      b.x +=speed
    }else if(keyCode == UP_ARROW){
     b.y-=speed
   }else if(keyCode == DOWN_ARROW){
    b.y+=speed
   }
   
  }
  b.show()
  jelly.show()


}

function mousePressed(){
  //find closest object
  b.x=random(width)
}