Sometimes, when we write programs and scripts, it feels like we have hit a brick wall! (This is a good sign - it is supposed to be hard.) For homework, you are going to draw this brick wall.

Exercises and Hints

This homework is not just about drawing; it is also about practicing abstraction. You will draw the following brick wall by implementing the blocks listed below.
Sample image of brick wall

Note: You must implement these blocks and adhere to the abstraction described below.

There are two kinds of rows in this brick wall:
The big idea is that there are three levels of abstraction.

At the lowest level of abstraction (Level 3):

At the middle level of abstraction (Level 2):

At the highest level of abstraction (level 1)
In summary, you should implement the following blocks:

Blocks to implement


Note: Whenever you need to refer to a fixed number, such as the width of a brick, use a global variable. This is generally considered good style, because you can use the same variable in multiple places in your program, and you only need to change the value of the variable to change it in multiple places at once, to tune up the appearance of your wall.

Upload and Submit

Once you are done, upload your solution as a file called Brick-Wall and submit.