Mathematica 188 185 170 115 115 130 46 48 caractères
Explication
Dans les versions précédentes, j'ai fait un graphique des positions ayant une distance d'échiquier de 1 les unes des autres. GraphComponentsa ensuite révélé le nombre d'îles, une par composante.
La présente version utilise MorphologicalComponentspour rechercher et numéroter des grappes dans les régions du tableau où 1sont physiquement contiguës. Parce que la représentation graphique n'est pas nécessaire, cela se traduit par une énorme économie de code.
Code
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&
Exemple
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}}]
5
Comment ça marche
Les données sont entrées sous forme de tableau; dans Mathematica, il s'agit d'une liste de listes.
Dans le tableau d'entrée, les données sont converties en 1's et 0' par le remplacement
/.{"."->0,"*"->1}
où /.est une forme d'infixe ReplaceAllsuivie de règles de remplacement. Cela convertit essentiellement la matrice en une image en noir et blanc. Tout ce que nous devons faire est d'appliquer la fonction Image,.
Image[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}} /. {"." -> 0, "*" -> 1}]

Les carrés blancs correspondent aux cellules ayant la valeur 1.
L'image ci-dessous montre quelques étapes que l'approche utilise. La matrice d'entrée ne contient que des 1«et 0». La matrice de sortie étiquette chaque groupe morphologique avec un nombre. (J'ai enveloppé les matrices d'entrée et de sortie MatrixFormpour mettre en évidence leur structure bidimensionnelle.)
MorphologicalComponentsremplace 1s par un entier correspondant au numéro de cluster de chaque cellule.

Max renvoie le plus grand numéro de cluster.
Affichage des îles
Colorize colorera chaque île de façon unique.
