anchor.diff:            ..x = x*GRID_WIDTH
             ..y = -(i+1)*GRID_HEIGHT;
           this.addChild(product);
  -        var tween = new Tween(product, 0.5, TransitionFunction.linear)
  +        var tween = new Tween(product, DROP_TIME*col_drop_count, TransitionFunction.linear)
             ..animate.y.to((col_drop_count-i-1)*GRID_HEIGHT)
             ..onComplete = () => onDropProductComplete(product);
           _juggler.add(tween);
  
positive.code:             continue;
          }
          if(col_drop_count > 0) { // Holes below, drop it
            dropProduct(x, y, x, y+col_drop_count);
          }
        }
        // Drop more from the top
        for(int i=0; i<col_drop_count; ++i) {
          ++dropping_products;
          int face_id = 1 + _rng.nextInt(7);
  
negative.code: const GRID_COLS = 8;   // grid columns
  const GRID_WIDTH = 60;  // grid cell width
  const GRID_HEIGHT = 60; // grid cell height
  
  
  
  // game states
  const WAITING = 0;      // Waiting for player move
  