import java.awt.*; import java.applet.Applet; import java.util.*; public class RowWorld extends PictureWorld { public void initializePictureChoices() { // Add your pictures to the menu via "addPictureChoice(String name, Picture pic);" Picture smile = smileyFace1(Color.black,Color.yellow); addPictureChoice("A--smile(Color.black,Color.yellow)", smile); addPictureChoice("D--rowWhile(smile,1)", smile); addPictureChoice("D--rowWhile(smile,1)", rowFor(smile,1)); addPictureChoice("D--rowWhile(smile,2)", rowFor(smile,2)); addPictureChoice("D--rowWhile(smile,3)", rowFor(smile,3)); addPictureChoice("D--rowWhile(smile,4)", rowFor(smile,4)); addPictureChoice("E--rowFor(smile,1)", rowFor(smile,1)); addPictureChoice("E--rowFor(smile,2)", rowFor(smile,2)); addPictureChoice("E--rowFor(smile,3)", rowFor(smile,3)); addPictureChoice("E--rowFor(smile,4)", rowFor(smile,4)); } // Methods for generating the primitive pictures for this problem. // You do not have to understand these in order to do the problem set. public Picture patch(Color c) { return overlay (new Rect(0.0, 0.0, 1.0, 1.0, Color.black, false), new Rect(0.0, 0.0, 1.0, 1.0, c, true)); } public Picture smileyFace1 (Color fg, Color bg) { return overlay(overlay(slantEyes(fg),smile(fg)),patch(bg)); } public Picture slantEyes (Color c) { Poly eye1 = new Poly(c,true); eye1.addPoint(0.25,0.6); eye1.addPoint(0.35,0.6); eye1.addPoint(0.4,0.8); eye1.addPoint(0.3,0.8); eye1.addPoint(0.25,0.6); Poly eye2 = new Poly(c,true); eye2.addPoint(0.6,0.6); eye2.addPoint(0.7,0.6); eye2.addPoint(0.75,0.8); eye2.addPoint(0.65,0.8); eye2.addPoint(0.6,0.6); return overlay(eye1,eye2); } public Picture smile (Color c) { Poly smile = new Poly(c, true); smile.addPoint(0.42,0.16); smile.addPoint(0.58,0.16); smile.addPoint(0.68,0.2); smile.addPoint(0.78,0.26); smile.addPoint(0.84,0.20); smile.addPoint(0.90,0.26); smile.addPoint(0.71,0.45); smile.addPoint(0.65,0.39); smile.addPoint(0.71,0.33); smile.addPoint(0.59,0.26); smile.addPoint(0.41,0.26); smile.addPoint(0.29,0.33); smile.addPoint(0.35,0.39); smile.addPoint(0.29,0.45); smile.addPoint(0.10,0.26); smile.addPoint(0.16,0.20); smile.addPoint(0.22,0.26); smile.addPoint(0.32,0.2); smile.addPoint(0.42,0.16); return smile; } //------------------------------------------------------------------------------ // The following main method is needed to run the applet as an application public static void main (String[] args) { runAsApplication(new RowWorld(), "RowWorld"); } //------------------------------------------------------------------------------ // Add the definition of rowWhile() here: public Picture rowWhile (Picture p, int numberItems) { Picture finalPic = empty(); int numDone = 0; while (numDone < num) { //add one more copy of the pic finalPic = beside(p, finalPic, 1.0/(numDone+1)); numDone = numDone + 1; } return finalPic; } // Add the definition of rowFor() here: public Picture rowFor (Picture p, int num) { Picture finalPic = empty(); for (int i=0; i