public void quality(int x, int y, int num)
        {
            if ((x < 0) || (x > length - 1)) // check x bound
            {
                return; // out of bound -> quit
            }
            if ((y < 0) || (y > length - 1)) // check y bound
            {
                return; // out of bound -> quit
            }

            if (!map[x, y])
            {
                return; // false -> quit
            }
            else
            {
                num++; // inc num

                quality(x, y - 1, num); // rec: up
                quality(x - 1, y, num); // rec: left
                quality(x, y + 1, num); // rec: down
                quality(x + 1, y, num); // rec: right

                return; // end
            }

        }



꼬박 꼬박 return 으로 끝내주는데 ..