anchor.diff:      var rng = new Math.Random();
       List<Territory> toAssign = new List<Territory>();
       toAssign.addAll(territories.values);
  -    for (int i = 0; i < whiteFields; i++) {
  +    for (int i = 0; i < whiteFields; ) {
         Territory getT = toAssign[rng.nextInt(toAssign.length)];
         if (getT.ownerRef == null) {
           players[1].territories.add(getT);
           toAssign.remove(getT);
  -      } else {
  -        i--;
  +        i++;
         }
       }
       int nextPlay = 1;
  
positive.code:           testTile.neighbours.forEach((n) {
              t.neighbourTiles[n] = field[n];
              field[n].parentTerr = t.id;
              tilesLeft--;
            });
            t.neighbourTiles.remove(testTile.id);
            tilesLeft--;
          } else if (testTile.parentTerr != t.id) {
            t.neighbours[testTile.parentTerr] = ret[testTile.parentTerr];
            t.neighbourTiles.remove(testTile.id);
          }
        });
      }
      assignTerritories(ret, players, whiteFields, playerFields);
  
      return ret;
  
negative.code:     });
  
      //-----------------grow Territories 2.---------------------
      /*var rng = new Math.Random();
      int tilesLeft = (_xSize * _ySize) - (maxFields * 7);
      while (tilesLeft != 0) {
        ret.values.forEach((t) {
  