Wednesday, September 27, 2000
Given the following code below, draw an invocation tree for
[LBW1].run()
, where [LBW1]
is an instance of LabBuggleWorld
in Object Land.
public class LabBuggleWorld extends BuggleWorld { public void run () { LabBuggle barb = new LabBuggle(); Color c = Color.blue; barb.forward(2); barb.turnAround(); barb.jump(2,3); barb.colorTwo(c.darker()); barb.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)); } public void colorTwo (Color c) { forward(); setColor(c); backward(); } }
Read about the Escher knitting patterns from Problem Set 3. Below
are three practice knitting patterns to figure out. The skeletons for
the methods are in the LabKnitWorld.java
file.
|
|
|
|
SeeKnit.html
file in the Test folder.
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
Read about QuiltWorld in Problem Set 3. Below are two simpler
quilt designs to figure out. The skeletons for the methods are in the
LabQuiltWorld.java
file.
|
|
SeeQuilt.html
file in the Test folder.