public class BagelWorld extends BuggleWorld { public static void main (String[] args) { runAsApplication(new BagelWorld(), "BagelWorld"); } 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 subrectangle left(); // undo state changes backward(); right(); } } public void bagelLine(int n) { if (n == 0) return; dropBagel(); forward(); bagelLine(n - 1); backward(); } }