anchor.diff:  }
   
   init() {
  -  entities.add(new Ship(100, 100));
  +  entities.add(new Ship(100, 250));
   
  -  int invaderStartX = 20;
  +  int invaderStartX = sceneLeft + 10;
     int invaderStartY = 40;
     int invaderGapX = 30;
     int invaderGapY = 35;
  
positive.code:   Texture _tex;
    int _x, _y;
  
    Ship(this._x, this._y) {
      _tex = textures.add(#player, "sprites.png", 16, 0, 16, 16);
    }
  
    update(UpdateContext u) {
      if (u.gameLoop.keyboard.isDown(Keyboard.LEFT)) {
        _x -= 1;
      }
      else if (u.gameLoop.keyboard.isDown(Keyboard.RIGHT)) {
        _x += 1;
      }
    }
  
  
negative.code:   InvaderController(this._invaders);
  
    int _updateIdx = 0;
    int delta = 2;
  
    update(UpdateContext u) {
      //int row = _updateIdx % numRows;
      //int firstInvader = row * numCols;
      //int lastInvader = firstInvader + numCols;
      int firstInvader = 0;
      int lastInvader = _invaders.length;
  
      int minX = sceneRight;
      int maxX = sceneLeft;
      for (int i = firstInvader; i < lastInvader; i++) {
        Invader invader = _invaders[i];
        invader.x += delta;
        minX = min(minX, invader.x);
        maxX = max(maxX, invader.x + 16);
      }
  
      if ((minX <= sceneLeft) || (maxX >= sceneRight))
        delta *= -1;
  
      _updateIdx++;
    }
  