anchor.diff:  
     int points = 5;
   
  +  Random rnd  = new Random();
  +
     bool running = true;
   
     Snake(CanvasRenderingContext2D crc) {
  -    coords.add(new Coord(10, 10));
  -
  -
  -    // XXX All of this will be invalid on canvas resize!
  +
       cwidth = crc.canvas.width;
       cheight = crc.canvas.height;
   
       cowidth = (cwidth / width).round();
       coheight = (cheight / width).round();
  +
       clearCanvas();
  +
  +    coords.add(newRandomCoord());
       assert(coords.length == 1);
  +  }
  +
  +  Coord newRandomCoord() {
  +    return new Coord(rnd.nextInt(cowidth), rnd.nextInt(coheight));
     }
   
     void addPoints(num delta) {
  
positive.code:   void clearCanvas() {
      // final CanvasElement canvas = querySelector("#myCanvas");
      var gc = canvas.canvas.getContext('2d');
      gc.fillStyle = "#FFFFFF";
      gc.fillRect(0, 0, cwidth, cheight);
    }
  
  
negative.code:      * canvas, but not anywhere on the snake.
       */
    void setNewLocation() {
      location = newRandomCoordNotOnSnake();
    }
  
    void gameAction() {
  