Mathematica 188 185 170 115 130 46 48 символів
Пояснення
У попередніх версіях я робив графік позицій, що мають шахівницьку відстань 1 один від одного. GraphComponentsпотім було виявлено кількість островів, по одному на компонент.
Ця версія використовує MorphologicalComponentsдля пошуку та нумерації кластерів у масиві - регіони, де 1фізично суміжні. Оскільки графік зайвий, це призводить до величезної економії коду.
Код
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&
Приклад
Max@MorphologicalComponents[#/.{"."->0,"*"->1}]&[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}}]
5
Як це працює
Дані вводяться як масив; в Mathematica - це список списків.
У вхідному масиві дані перетворюються в 1's і 0' за допомогою заміни
/.{"."->0,"*"->1}
де /.є форма інфікування, за ReplaceAllякою слідують правила заміни. Це по суті перетворює масив у чорно-біле зображення. Все , що нам потрібно зробити , це застосувати функцію Image.
Image[{{".", ".", ".", ".", ".", ".", ".", ".", ".", "*", "*"}, {"*", "*", ".", ".", ".", ".", ".", ".", "*", "*", "*"}, {".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."}, {".", ".", ".", "*", ".", ".", ".", ".", ".", ".", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", "*", "."}, {"*", ".", ".", ".", ".", ".", ".", ".", ".", ".", "*"}} /. {"." -> 0, "*" -> 1}]

Білі квадрати відповідають клітинкам, що мають значення, 1.
На малюнку нижче показано кілька кроків, якими використовується підхід. Вхідна матриця містить лише 1's і 0' s. Вихідна матриця позначає кожен морфологічний кластер числом. (Я загорнув і вхідні, і вихідні матриці, MatrixFormщоб виділити їх двовимірну структуру.)
MorphologicalComponentsзамінює 1s цілим числом, що відповідає номеру кластера кожної комірки.

Max повертає найбільше число кластерів.
Відображення островів
Colorize пофарбує кожен острів унікально.
