//This program illustrates how a "complicated" procedure (drawing faces) can //be broken down into a set of simpler tasks (drawing a mouth, an eye, etc.) Do face (Random(640), Random(480), Random(16), Random(7)+1) @ Read quitkey Loop //--------------------------------------------------------------------------- Task face (Int x, Int y, Int face color, Int eye color) Line color (0); Solid color (facecolor) Filled ellipse (x, y, 85, 100) eye (x-35, y, eye color) @ eye (x+35, y, eye color) @ nose (x, y+30) @ mouth (x, y+60) @ End face //--------------------------------------------------------------------------- Task eye (Int x, Int y, Int z) Line color (0); Solid color (15) Filled ellipse (x, y, 20, 7) Solid color (z) Solid circle (x, y, 6) Solid color (0) Solid circle (x, y, 2) eyebrow (x, y-20) @ End eye //--------------------------------------------------------------------------- Task eyebrow (Int x, Int y) Line color (0) Line (x-20, y, x-25, y+5) Line (x-20, y, x+20, y) Line (x+25, y+5, x+20, y) End eyebrow //--------------------------------------------------------------------------- Task mouth (Int x, Int y) Line color (4); Solid color (0) Filled ellipse (x, y, 25, 15) Solid color (4) Solid ellipse (x, y+7, 21, 7) End mouth //--------------------------------------------------------------------------- Task nose (Int x, Int y) Solid color (0) Solid ellipse (x-5, y, 2, 1) Solid ellipse (x+5, y, 2, 1) Line color (0) Line (x-13, y, x-7, y-20) Line (x-13, y, x-10, y+3) Line (x+13, y, x+7, y-20) Line (x+13, y, x+10, y+3) End nose