anchor.diff:          int index = (valueIndex + shift + cageShift) % _size;
           cell.text = rowValues[index].toString();
         }
  -      cageShift += _cageSize;
  +      cageShift = cageShifts[(rowIndex + 1) % _cageSize];
       }
     }
  -  
  +
     void hideCells(int count) {
       while (_hiddenCells.length < count) {
         int row_index = _random.nextInt(_size - 1);
  
positive.code:   int _cageSize = 3;
    TableElement _table = new TableElement();
    List<TableCellElement> _hiddenCells = new List();
    
    Sudoku(DivElement root) {
      root.children.add(_table);
      List<int> rowValues = new List<int>(9);
  
negative.code: void main() {
    DivElement root = querySelector('#sudoku_container');
    Sudoku sudoku = new Sudoku(root);
    sudoku.hideCells(81);
  }
  
  class Sudoku {
  