CompSci 94 - Classwork 9- Sep 24, 2013
10 pts
Today's classwork goes along with Chapter 6, Section 1.
You will be using built-in functions and writing your own functions to
help you have a vehicle that can jump over objects of different size.
Note in each step whether you are writing a function
or a method. Also note whether or not it says
class or world for the function or method.
If it is a function, make sure you select
the correct type of return value. If you select the wrong return value,
you can't change it, so you will have to start your function over again.
The following work needs to be checked off when you have completed it.
- Create a new Alice world with some type of vehicle that has four wheels.
Write a class function for this vehicle called numberOfRevolutions (similar
to what I did in lecture) that has a distance parameter and returns the
number of revolutions a wheel of the vehicle should turn for the given
distance.
In world.myFirstMethod, add code to demonstrate that your vehicle can move
forward and backward with all four wheels having realistic
wheel motion.
OPTIONAL: You might want to write a realistic roll method as I did
in lecture to move your vehicle (turning wheels) a certain distance.
- Add in two objects, a large object (such as a pyramid or
building) and a smaller object (such as a person).
- Write a class function for your vehicle called stoppingDistanceInFrontOf
that has an object parameter. This function should return two plus twice
the width of the object parameter
- Write a class function for your vehicle called timeToJump that has an
object parameter. This function should return one plus (the object parameter's height
divided by 5).
- Write a class function for your vehicle
called OptimalHeight that has an object
parameter.
This function should return the object parameter's height plus half of the
object parameter's
width.
- Write a class method for your vehicle called
headToObject that has two parameters,
a direction and an object. This method should have your vehicle
turn to face the object parameter (as seen by the ground), and then realistically
roll in the given direction for the distance of the vehicle to the object
minus the stoppingDistanceInFrontOf the object. NOTE:
Make sure your vehicle is far away from the object it needs to move
over to.
- Write a class method for your vehicle called
jumpOver that has one object parameter.
This method should at the same time move your vehicle up the OptimalHeight of
the object and move the vehicle forward the stoppingDistanceInFrontOf
the vehicle.
Then the method should at the same time move the vehicle down the OptimalHeight
of the object and move the vehicle forward the stoppingDistanceInFrontOf
the
object. All of these commands should be done in the same amount of time,
specifically for the timeToJumpOver the object. (Thus, the total time for
this
method to execute is twice timeToJumpOver).
-
Now it is time to use all these methods and functions that you have
written.
Append to world.myFirstMethod code to have your vehicle head to one of the
objects and jump over it, then to head to the other object and
jump over it. Make sure it starts pretty far away from the objects.
If you finish early, feel free to embelish your animations.