anchor.diff:      int xDirection = 13;
       int yDirection = 0;
       int imageWidth = 13;
  -    double oddsTurning = .13;
  -    int minBeforeTurning = 3;
  +    double oddsTurning = .03;
  +    double teleportationRate = 0.01;
  +    int minBeforeTurning = 13;
       int numPumpkinsInRow = 0;
       Random rand;
  +
  +    //so i can teleport to somewhere i've previously drawn
  +    List<Point> history = new List<Point>();
   
       PumpkinDrawer(ImageElement this.image, CanvasElement this.canvas, CanvasElement this.buffer, int seed) {
           rand = new Random(seed);
  
positive.code:         return false;
      }
  
      void move() {
          cursorY += yDirection;
          cursorX += xDirection;
          if(numPumpkinsInRow > minBeforeTurning && (rand.nextDouble() < oddsTurning || offScreen())) {
              changeDirection();
          }
      }
  
      Future<Null> draw() async {
  
negative.code:         buffer.context2D.drawImage(image,cursorX,cursorY);
          drawBuffer();
          numPumpkinsInRow ++;
          history.add(new Point(cursorX, cursorY));
          new Timer(new Duration(milliseconds: 100), () => draw());
      }
  }
  
  
  