/* Java program from Chapter 1 of Reges & Stepp. ** The program, like its predecessor (DrawFigures2), "draws" a ** diamond, an 'X', and a rocket ship. This version improves ** upon its predecessor by applying procedural decomposition ** more deeply, thereby removing some redundancy. */ public class DrawFigures3 { public static void main(String[] args) { drawDiamond(); drawX(); drawRocket(); } public static void drawDiamond() { drawCone(); drawV(); System.out.println(); } public static void drawX() { drawV(); drawCone(); System.out.println(); } public static void drawRocket() { drawCone(); drawBox(); System.out.println("|United|"); System.out.println("|States|"); drawBox(); drawCone(); System.out.println(); } public static void drawBox() { System.out.println("+------+"); System.out.println("| |"); System.out.println("| |"); System.out.println("+------+"); } public static void drawCone() { System.out.println(" /\\"); System.out.println(" / \\"); System.out.println(" / \\"); } public static void drawV() { System.out.println(" \\ /"); System.out.println(" \\ /"); System.out.println(" \\/"); } }