Wednesday, February 19, 2003
Given the following code below, draw an invocation tree for
[LBW1].run()
, where [LBW1]
is an instance of LabBuggleWorld
in Object Land.
Invocation Tree Solutionpublic class LabBuggleWorld extends BuggleWorld { public void run () { LabBuggle diana = new LabBuggle(); diana.forward(2); diana.turnAround(); double d = diana.jump(2,3); diana.forward(3); boolean isBagel = diana.isOverBagel(); } } class LabBuggle extends Buggle { public void turnAround () { this.left(); this.left(); } public double jump (int right, int up) { Point p = this.getPosition(); this.setPosition(new Point(p.x+right, p.y+up)); return this.distanceFromStart(); } public double distanceFromStart () { Point p = getPosition(); int x = p.x-1; int y = p.y-1; return Math.sqrt((x*x)+(y*y)); } }
For exercises 2 and 3 please download the folder lab4_programs
from the
download
directory on cs111
server.
Recall that the two basic patterns are:
|
|
LabKnitWorld.java
file.
Task 2 Fill in the code for these methods to obtain the patterns. Consult Picture World contract if necessary.
|
|
|
|
First, a gentle introduction to quilting (Tasks 3a & 3b):
Task 3a Suppose you are given the following black box method:
public
Picture triangle (Color c)
Returns a Picture of a triangle of the specified Color whose vertices are at (0,0), (1,0), and (0,1).
For example,
|
Using only the methods in the PictureWorld contract, write (on paper) the expressions which will return the following Pictures:
|
|
|
Task 3b
Evaluate the following expressions. Draw (on paper) the
Picture
that each represents. Indicate the colors in
whatever way is convenient (colored pencils, markers,etc.). Do
not write a program to run on the computer to show you the
pictures; do it by hand!
picture 4
overlay(clockwise90(triangle(Color.blue)),triangle(Color.blue));
picture 5
above(fourSame(flipDiagonally(triangle(Color.yellow))), beside(triangle(Color.green), above(empty(), flipVertically(triangle(Color.green)))));
Task 3c
Below are two simpler quilt designs to figure out. The skeletons for the methods are in theLabQuiltWorld.java
file.
To test your code, move the file LabQuiltWorld.html
to the topmost position in Link
Order in your project.
|
|