Mini-Lab: More Practice with For Loops
for Manipulating Pixels in a Picture
 
Introduction
 This mini-lab will give you extra practice  using for loops
  to step through pixels in a picture.
Drawing lines across a picture
  - Write a function that draws a white horizontal line across the
    top of a picture. (DO NOT use the addLinefunction that you used
in the Drawing Pictures mini-lab!)  Your function should take the picture as a parameter, and
    set all the pixels in the first row to white.    Test your
    function with an actual picture, either that you read in
    withmakePicture(pickAFile())or that you created
    withmakeEmptyPicture.Tips: You may
      recall that jes4py provides a number of Color keywords,
      including white, which you can pass to
      thesetColorfunction.  Also, it might be
      easier to see your results for some of these exercises against a
      solid-color background created bymakeEmptyPicturethan against the variety of colors present in many
      pictures.  If it is difficult to see the line at the very top
row, try drawing the line on row 10.
 
    
- Write a function similar to the one above, but use a color
      passed as a parameter rather than the
      constant white.Tip:You might
      start by copying and pasting your function from above and
      renaming it. [Quote from Alyce: "Never type if you can cut and
      paste."] 
    
- Write another variation on the same function, this time
      passing the row number as another parameter.
    
    
- Now write a function that draws a vertical line on a
    picture. The function should take a picture, a color and a column
    number as a parameters.
    
Filling chunks of a picture
  - Write a function to fill the entire canvas or picture
    passed in as a parameter with a specified color.
    Tip:Start by
	copying and pasting the function above. 
  
- Write a function to fill the left half of a canvas or picture
    with a specified color.  (Or the right half if you
    prefer.)
  
- Write a function to fill the top half of a canvas or picture
    with a specified color.  (Or the bottom half if you
    prefer.)
  
- Write a function to fill one quadrant (such as the upper-left
    fourth) of a canvas or picture with a specified color.
Drawing grids over a picture
  - Write a function that colors every other row of a
  canvas or picture with a specified color.
  Tip: There are two
    possible ways to write the functions in this section: you could
    use nested for loops,  or  you could use for loops that
    include calls to the functions you wrote in the "Drawing lines..."
    section above. Feel free to use whichever approach seems more
    natural to you.
 
  
- Write a function that colors every other column of a canvas or
  picture with a specified color.
  
- Write a function that colors every other row and column of a
  canvas or picture with a specified color.
  
- Write a function that creates a plaid effect across a canvas or
  picture in a specified color.  For this exercise, your lines could
  be wider than 1 pixel, and/or they could be farther apart than 1
  pixel.
If you have time: drawing diagonals
  - Write a function that draws a diagonal line from the upper-left
    corner of a canvas or picture down and to the right.  To make
    developing the algorithm easier, assume that the picture is
    perfectly square.  (You can ensure this by using makeEmptyPicture
    and making the width and height the same, rather than passing in
    an arbitrary picture.)
  
- Write an efficient function to draw a diagonal line starting
    from the upper-left corner of the canvas. Do not assume that the
    picture is necessarily perfectly square.  This means that you
    must make sure that you stop drawing if you come to either the
    right edge or bottom edge of the picture.
  
- Write an efficient function to draw a diagonal line from the
    upper-right corner of a canvas or picture down and to the
    left. (Or you could start in the lower-left corner and draw up and
    to the right if you prefer.)  Do not assume that the picture
    is necessarily perfectly square.
  
- Write a function that draws an X across a picture.  (Hint:
    you should be able to do this in very few lines of code!)
Submit your results
    - Submit
your file for this mini-lab via Kit. You must
    have finished  exercises 1-5,
exercise 6 or exercise 7, exercises 8-11 and the first
exercise under 'drawing diagonals' before turning this
    in.  (That's 11 functions!)