Also to fence it, I only have so much fence, because fence cost money.

I only have a limited amount of fence.

So the perimeter of this thing has to be limited to within some limit,

depending on how much I can afford.

So I need to determine if a particular pool shape satisfies this criteria,

because I'm trying to go through a bunch of different pool shapes.

And I want to pick one that satisfies these criterias.

It's sort of small enough that it can fit in the yard.

And also the perimeter's small enough so that I can afford to fence it.

So I'm going to write this function called FitInYard ().

And this is going to return a boolean.

So it takes a shape as an argument.

Some shape, maybe I got some triangular shape, I was pass that to FitInYard, and

it returns true, if the shape satisfies the criteria.

So if the area is small enough, and the pool is small enough, then it says true.

If I pass it a shape like rectangle and

it's a big rectangle and it doesn't fit in my yard then it will return false, okay?

So that's what FitInYard is.

Now the thing about fit in yard is it's got to take a shape as an argument.

But I want it to take any shape as an argument.

I don't care if it's a triangle, circle, square, rectangle,

whatever, it can be any shape.

I should take it as an argument.

But I have to be able to compute the area and compute the perimeter, okay?

So not any shape, its got to be a shape whose area and perimeter I can compute.

So let's say the idea is should take rectangles, triangles, whatever.

But a valid shape has to have an area method and a perimeter method, right?

So if the shape, if I can't compute the area,

then I won't be able to tell if it fits in my yard.

Say it's a sphere or something, right?

There's no area, it's a 3D shape,

that's a 3D object, I can't compute area of a thing like that, right?

So, that is not a valid shape that I want to try to fit in my yard.