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 some blue squares

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 world with some blue squares

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

a world with some blue squares

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

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 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 inside of a pipe with some holes on the left and right

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

Bit inside of a pipe with the holes turned 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