マップなんてブロック毎にわけてればたいした大きさじゃないし
ひび割れを起こした時に一度チェックすれば済む話なので簡単そうだがな。
マップを配列にしておいてひび割れによって区切られた部分でフラグを起こしていけばできそう。

例えばブロックを海、陸、ひび割れ(ヒビ)の3種類にわけてプレイヤーがひび割れを作った時点でチェック。

まずはマップ全体をチェックし、陸地の個数を記憶。

次にヒビのつながりを調べて陸地が分断されたかをチェック。
海→ヒビ→・・・→ヒビ→海と繋がっていたら分断とみなし、陸地の沈没処理へ。

次に陸地部分を塗りつぶしと同じ要領(スキャンラインだっけ)で走査してフラグを立てていく(同時に塗りつぶした個数も覚えておく)
塗りつぶしが終わった時点で個数を調べて全部の陸地のうち塗りつぶした部分とそうでない部分の数を比較
塗りつぶした部分のほうが少なければそっちを沈没。そうじゃなければ残りのほうを沈没。で、終了。

適当に考えてみたが、こんなもんか?