Mathematica 188 185 170 115 130 130 46 48 caracteres
Explicação
Nas versões anteriores, fiz um gráfico de posições com uma distância de 1 no tabuleiro de xadrez. GraphComponentsdepois revelou o número de ilhas, uma por componente.
A presente versão usa MorphologicalComponentspara encontrar e numerar clusters de unidades no array - regiões onde 1são fisicamente contíguas. Como os gráficos são desnecessários, isso resulta em uma enorme economia de código.
Código
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&
Exemplo
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}}]
5
Como funciona
Os dados são inseridos como uma matriz; no Mathematica, esta é uma lista de listas.
Na matriz de entrada, os dados são convertidos em 1's 0' pela substituição
/.{"."->0,"*"->1}
onde /.é uma forma infix ReplaceAllseguida por regras de substituição. Isso basicamente converte a matriz em uma imagem em preto e branco. Tudo o que precisamos fazer é aplicar a função Image,.
Image[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}} /. {"." -> 0, "*" -> 1}]

Os quadrados brancos correspondem às células com o valor 1.
A figura abaixo mostra alguns passos que a abordagem usa. A matriz de entrada contém apenas 1's e 0' s. A matriz de saída rotula cada cluster morfológico com um número. (Coloquei as matrizes de entrada e saída MatrixFormpara destacar sua estrutura bidimensional.)
MorphologicalComponentssubstitui 1s por um número inteiro correspondente ao número do cluster de cada célula.

Max retorna o maior número de cluster.
Exibindo as Ilhas
Colorize colorirá cada ilha exclusivamente.
