anchor.diff:    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 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++) {
  -      _invaders[i].x += 1;
  +      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++;
     }
  
positive.code: }
  
  init() {
    entities.add(new Ship(100, 100));
  
    int invaderStartX = 20;
    int invaderStartY = 40;
    int invaderGapX = 30;
    int invaderGapY = 35;
  
negative.code: library pewpewgame;
  
  import 'dart:html';
  import 'dart:math';
  import 'package:game_loop/game_loop_html.dart';
  import 'package:pewpew/gamewrapper.dart';
  
  
  const int sceneLeft = 10;
  const int sceneRight = 500;
  
  const int numRows = 5;
  const int numCols = 11;
  
  
  List<Invader> invaders = new List<Invader>();
  
  