□□■□■
□■■□□
□■□□■
この場合は3つです。
マークを判決した時に上下左右を判定するという流れだと思うんですがそれをうまく再起を利用してかけません。
shimaという関数のところを教えていただきたいです。
#include <iostream>
#include <string>
using namespace std;
const int size_x=5;
const int size_y=10;
void print_map(string [][size_x]);
void shima(string [][size_x],??);
int main()
{
string map[size_y][size_x]={
{"□","□","□","□","□","■","□","□","■","■"},
{"□","□","□","□","□","□","■","□","■","■"},
{"□","□","□","■","■","■","□","■","□","□"},
{"□","□","■","■","□","■","□","□","□","□"},
{"□","□","□","■","□","□","■","□","□","□"}};
print_map(map);
shima(map,??);
return 0;
}
void print_map(string map[][size_x])
{
for(int i=0;i<size_x;i++){
for(int j=0;j<size_y;j++){
cout << map[i][j];
}
cout << endl;
}
}
void shima(string map[][size_y],??)
{
//再帰による島のカウント
}