這題需要思考到使用遞歸將+以外連起來的區塊都變成+,掌握好邊界值
像是如下關鍵偽代碼
void 著色(char **N, int len, int row, int col) {
if (檢查row和col在N的邊長0-len的範圍值內)
{
if (如果N[row][col] == '-')
{
把N[row][col] 變成 '+';
}
if (row + 1 < len && N[row + 1][col] != '+')
{
color(N, len, row+1, col);
}
if (row - 1 > 0 && N[row - 1][col] != '+')
{
color(N, len, row-1, col);
}
if (col + 1 < len && N[row][col + 1] != '+')
{
color(N, len, row, col+1);
}
if (col - 1 > 0 && N[row][col - 1] != '+')
{
color(N, len, row, col-1);
}
}
}