public class BagelWorld extends BuggleWorld { public void run() { BagelBuggle betty = new BagelBuggle(); betty.brushUp(); betty.bagelRect(4,5); } } class BagelBuggle extends Buggle { public void bagelRect(int w, int h) { if (h == 0) { // base case // nothing to do } else { // recursive case bagelLine(w); // draw bottom line left(); // move to the forward(); // next row right(); bagelRect(w, h-1); // draw ³subrect² left(); // undoes state change backward(); // undoes state change right(); } } public void bagelLine(int n) { if (n == 0) { // base case // do nothing } else { // recursive case dropBagel(); forward(); bagelLine(n-1); // drop n-1 bagels backward(); // and backup } } }