Available in hardcopy outside Professor Turbak's office.
public void run () { // create a RugBuggle object weaver RugBuggle weaver = new RugBuggle(); weaver.makeRug(); } } class RugBuggle extends Buggle { public void makeRug() { weaver.outerRing(Color.red); weaver.innerRing(Color.blue); weaver.centerRing(Color.yellow); } public void outerRing(Color c) { setColor(c); outerEdge(); outerEdge(); outerEdge(); outerEdge(); moveIn(); } public void innerRing(Color c) { setColor(c); innerEdge(); innerEdge(); innerEdge(); innerEdge(); moveIn(); } public void centerRing(Color c) { setColor(c); centerEdge(); centerEdge(); centerEdge(); centerEdge(); moveIn(); } public void outerEdge() { pattern1(); pattern2(); pattern2(); pattern2(); pattern2(); turnCorner(); } public void innerEdge() { pattern3(); pattern3(); pattern3(); turnCorner(); } public void centerEdge() { pattern4(); turnCorner(); } public void pattern1() { brushDown(); left(); dropBagel(); forward(); dropBagel(); forward(); dropBagel(); right(); right(); forward(); brushUp(); forward(); left(); forward(); brushDown(); dropBagel(); forward(); dropBagel(); forward(); brushUp(); } public void pattern2() { brushDown(); dropBagel(); forward(); dropBagel(); forward(); dropBagel(); forward(); brushUp(); } public void pattern3() { brushDown(); dropBagel(); forward(); brushUp(); forward(); left(); forward(); brushDown(); dropBagel(); forward(); brushUp(); left(); forward(2); brushDown(); dropBagel(); left(); forward(); brushUp(); forward(1); left(); forward(3); } public void pattern4() { brushDown(); dropBagel(); forward(); brushUp(); forward(); brushDown(); dropBagel(); left(); forward(); brushUp(); left(); forward(); brushDown(); dropBagel(); forward(); brushUp(); right(); forward(); brushDown(); dropBagel(); right(); forward(); brushUp(); forward(); brushDown(); dropBagel(); right(); forward(); brushUp(); forward(); left(); forward(); } public void moveIn() { forward(3); left(); forward(3); right(); } public void turnCorner() { forward(2); left(); } }