Computer Science 252
Problem Solving with Java
Spring 2014, The College of Saint Rose
NestedSquaresRec Demo
A working demo of NestedSquaresRec will appear below. Click inside the applet to interact with it.
NestedSquaresRec BlueJ Project
Click here to download a BlueJ project for NestedSquaresRec.
NestedSquaresRec Source Code
The Java source code for NestedSquaresRec is below. Click on a file name to download it.
import objectdraw.*; import java.awt.*; /* * Example NestedSquaresRec: a recursive implementation of an * object consisting of nested squares. * * Jim Teresco, The College of Saint Rose, CSC 252, Fall 2013 * * $Id: NestedSquaresRec.java 2227 2013-10-24 03:37:54Z terescoj $ */ public class NestedSquaresRec { private static final int SIZE_CHANGE = 4; // a recursive implementation: we draw nested squares // by creating the outermost square, then calling // THIS CONSTRUCTOR to draw the rest, which are really // just another set of nested squares, just a little bit // smaller and a little bit down and to the right. public NestedSquaresRec(double x, double y, int size, DrawingCanvas c) { if (size > 0) { // draw one new FramedRect(x, y, size, size, c); // draw the rest new NestedSquaresRec(x + SIZE_CHANGE/2, y+SIZE_CHANGE/2, size - SIZE_CHANGE, c); } } }
import objectdraw.*; import java.awt.*; /* * Example NestedSquaresLoop: draw some nested squares objects * when the mouse is pressed * * Jim Teresco, The College of Saint Rose, CSC 252, Fall 2013 * * $Id: DrawNestedSquares.java 2227 2013-10-24 03:37:54Z terescoj $ */ public class DrawNestedSquares extends WindowController { public void onMousePress(Location point) { new NestedSquaresRec(point.getX(), point.getY(), 100, canvas); } }