anchor.diff:  
     int getAdjacent(int x, int y) {
       final i = _getIndex(x, y);
  -    return null;
  +    if(_squares[i]) {
  +      return null;
  +    }
  +
  +    int val = _adjacents[i];
  +
  +    if(val == null) {
  +      val = 0;
  +      for(int j = math.max(0, x - 1); j < math.min(cols, (x + 2)); j++) {
  +        for(int k = math.max(0, y - 1); k < math.min(rows, (y + 2)); k++) {
  +          final ia = _getIndex(j, k);
  +          if(_squares[ia]) {
  +            val++;
  +          }
  +        }
  +      }
  +      _adjacents[i] = val;
  +    }
  +    return val;
     }
   
     int _getIndex(int x, int y) {
  
positive.code:     return new Field._internal(count, cols, rows, squares);
    }
  
    Field._internal(this.mineCount, this.cols, this.rows, this._squares) {
      assert(cols > 0);
      assert(rows > 0);
      assert(_squares.length == cols * rows);
  
negative.code:   final int cols;
    final int rows;
    final List<bool> _squares;
    final List<int> _adjacents;
  
    int _toFindCount;
  
  