code: private void checkTransitives(Collection<Tile> resolved, Tile tile)
      {
          boolean isTransitive = false;
          for (final Tile neighbor : map.getNeighbors(tile))
          {
              final String group = mapGroup.getGroup(tile);
              final String neighborGroup = mapGroup.getGroup(neighbor);
              final Collection<GroupTransition> transitives = getTransitives(group, neighborGroup);
  
              if (transitives.size() > 1 && (getTransition(neighbor, group) == null || isCenter(neighbor)))
              {
                  final int iterations = transitives.size() - 3;
                  int i = 0;
                  for (final GroupTransition transitive : transitives)
                  {
                      updateTransitive(resolved, tile, neighbor, transitive);
                      isTransitive = true;
                      i++;
                      if (i > iterations)
                      {
                          break;
                      }
                  }
              }
          }
          // Restore initial tile once transition solved by transitive
          if (isTransitive)
          {
              map.setTile(tile);
          }
      }
docs: Check tile transitive groups.
  
  @param resolved The resolved tiles.
  @param tile The tile to check.