80 - 109 Solutions

Check your solutions below

80: Here's Python

81: Matching Blockly

82: Don't forget to find the shortest route

83: Repeating yourself in Python looks different

84: Repeat and watch

85: Looks easy but use repeat until and see what happens?

86: See what the if blocks looks like in Python

87. Don't forget to use else if

88. Don't forget to use else if

89. Watch carefully as you have another go

90. Have a go at procedures - what do they look like in Python?

91. Put it all together

92. Start with the basics, forward, left and right

from van import van

my_van = Van()

my_van.move_forwards()
my_van.turn_right()
my_van.turn_left()
my_van.move_forwards()

93. Keep it simple

from van import van

my_van = Van()

my_van.turn_left()
my_van.move_forwards()
my_van.move_forwards()
my_van.turn_right()
my_van.turn_right()
my_van.turn_left()
my_van.turn_right()
my_van.move_forwards()
my_van.move_forwards()
my_van.turn_left()
my_van.turn_left()
my_van.turn_right()

94. Take the shortest route

from van import van

my_van = Van()

my_van.turn_right()
my_van.turn_left()
my_van.move_forwards()
my_van.turn_right()
my_van.turn_left()
my_van.turn_right()
my_van.turn_left()

95. Count and repeat

from van import van

my_van = Van()

for i in range(3):
    my_van.turn_left()
    my_van.turn_right()
    my_van.move_forwards()

96. Count and repeat is easy

from van import van

my_van = Van()

for count in range(2):
    my_van.move_forwards()

my_van.turn_left()

for count in range(3):
    my_van.move_forwards()

97. Loop the Loop

from van import van

my_van = Van()

for count in range(3):
    for forward in range(4):
        my_van.move_forwards()
    for left in range(2):
        my_van.turn_left()
    for forward in range(4):
        my_van.move_forwards()
    for right in range(2):
        my_van.turn_right(). Keep it simple

98. Repeat and check

from van import Van

my_van = Van()

while not my_van.at_destination():
    if my_van.is_road_forward():
        my_van.move_forwards()
    else:
        my_van.turn_left()

99. Find a general solution

from van import Van

my_van = Van()

while not my_van.at_destination():
    if my_van.is_road_forward():
        my_van.move_forwards()    
    elif my_van.is_road_left():
        my_van.turn_left()
    else:
        my_van.turn_right()

100. Watch out for the dead end

from van import Van

my_van = Van()

while not my_van.at_destination():
    if my_van.is_road_forward():
        my_van.move_forwards()
    elif my_van.is_road_left():
        my_van.turn_left()
    else:
        my_van.turn_right()

101. Function, what function?

from van import Van

my_van = Van()

def main():
    right_left()
    my_van.move_forwards()
    right_left()
    for count in range(2):
        my_van.move_forwards()
    for count in range(2):
        right_left()
        my_van.turn_right()
    my_van.move_forwards()
    
def right_left():
    my_van.turn_right()
    my_van.turn_left()

main()

102. Watch for the patterns

from van import Van

my_van = Van()

def main():
    left()
    right()
    my_van.move_forwards()
    my_van.turn_right()
    for count in range(2):
        my_van.move_forwards()
    my_van.turn_right()
    right()
    left()
    my_van.move_forwards()

def left():
    for count in range(2):
        my_van.turn_left()
        my_van.turn_right()

def right():
    for count in range(2):
        my_van.turn_right()
        my_van.turn_left()

main()

103. Patterns within patterns

from van import Van

my_van = Van()

def main():
    big()
    my_van.move_forwards()
    big()
    forward_left()
    for count in range(2):
        forward_right()
        my_van.move_forwards()
    forward_left()

def forward_left():
    my_van.move_forwards()
    my_van.turn_left()

def forward_right():
    my_van.move_forwards()
    my_van.turn_right()

def big():
    forward_left()
    for count in range(2):
        forward_right()

main()

104. Can you see the repeating pattern?

from van import Van

my_van = Van()

def main():
    big()
    for count in range(4):
        my_van.move_forwards()
    right()
    big()
    for count in range(3):
        my_van.move_forwards()
    my_van.turn_right()
    my_van.turn_left()
    left()
    my_van.move_forwards()

def left():
    for count in range(2):
        my_van.move_forwards()
        my_van.turn_left()

def right():
    for count in range(2):
        my_van.move_forwards()
        my_van.turn_right()

def big():
    left()
    right()

main()

105. Find the shortest route

from van import Van

my_van = Van()

while not my_van.at_destination():
    if my_van.at_red_traffic_light():
        my_van.wait()
    elif my_van.is_road_left():
        my_van.turn_left()
    elif my_van.is_road_forward():
        my_van.move_forwards()
    else:
        my_van.turn_right()

106. Spiral and add

from van import Van

my_van = Van()

n = 1

while not my_van.at_destination():
    my_van.turn_right()
    for count in range(n):
        my_van.move_forwards()
    n = n + 1

107. Spiral and double

from van import Van

my_van = Van()

n = 1
while not my_van.at_destination():
    my_van.turn_left()
    for count in range(n):
        my_van.move_forwards()
    n = n * 2

108. Think less

from van import Van

my_van = Van()

n = 6
while not my_van.at_destination():
    for i in range(n):
        my_van.move_forwards()
    my_van.turn_left()
    n = n - 2

109. Final challenge!

from van import Van

my_van = Van()

n = 0

for count in range(4):
    my_van.turn_right()
    for forward in range(n):
        my_van.move_forwards()
    n = n + 1

my_van.turn_right()

while not my_van.at_destination():
    for count in range(n):
        my_van.move_forwards()
    my_van.turn_left()
    n = n / 2

Last updated