BYU logo Computer Science

To start this assignment, download this zip file.

The following guide pages cover material needed for this assignment:

Homework 2a — If

1. Invert

Bit needs to turn blue squares white, and turn white squares blue. For example, if Bit starts in this world:

a world with one green square and some blue squares in the middle row

then the final world needs to look like this:

blue and white squares reversed

To check if a square is empty, use:

bit.is_on_white()

To erase the color in any square, use:

bit.paint('white')

Use the starter code in invert.py to write your code.

Be sure to check all three worlds! You will also see a world called invert2:

a different world with one green square and some blue squares in the middle row

and a world called invert-careful. Note that the red squares are not converted, but white squares are turned to blue:

a world with two green squares, one red square, and some blue squares in the middle row

2. Wander

Bit starts in this world:

a world with some green and blue squares

Bit follows these rules:

  • Bit moves until it’s blocked in front
  • Bit turns left when encountering a green square
  • Bit turns right when encountering a blue square
  • Bit paints empty squares red

The final world should look like this:

Bit's path is painted red, but the blue and green squares remain

Use the starter code in wander.py to write your code.

Be sure to check both worlds! You will see a second world called wander2:

a different world with some green and blue squares

3. Fix the pipe

Bit is inside of a pipe and wants to patch the holes. The starting world looks like this:

Bit is in the middle row, with black squares in the top and bottom row with some empty spaces

Bit patches the holes with blue sealant. So when Bit is finished, the world should look like this:

The empty spaces of the previous world have been changed to blue

Use the starter code in fix_pipe.py to write your code.

Grading

ActivityPoints
invert.py5
wander.py5
fix_pipe.py10

Manual Grading

Refer to the Quality Code guide page for detailed explanations and examples on each of these rubric criteria.

Intent

The intent of this assignment is for you to correctly use if-else statements.

You should not have if and else branches that do the same thing.
We do not expect you to use concepts like or, and, or break.
Do not use while-else. Simply write code after/outside the while loop.

RubricPoints
Whitespace1
Naming1
Decomposition4
Intent4
Total10