int HORIZON = 10; int MAX_WINDOWS = 64; int MAX_HOUSES = 128; void setup() { System.out.println( "Let's make houses!" ); size( 500, 170 ); House house1 = new House( 100, 40 ); House house2 = new House( 70, 50 ); House house3 = new House( 40, 87 ); House house4 = new House( 80, 87 ); House house5 = new House( 34, 98 ); Street myStreet = new Street(); myStreet.addHouse( house1 ); myStreet.addHouse( house2 ); myStreet.addHouse( house3 ); myStreet.addHouse( house4 ); myStreet.addHouse( house5 ); myStreet.drawStreet(); Window w1 = new Window( 3, 2, 1 ); Window w2 = new Window( 4, 5, 6 ); Window w3 = new Window( 12, 13, 14 ); house1.addWindow( w1 ); house1.addWindow( w2 ); house1.addWindow( w3 ); } // setup ends ///// public class Street { // Variables House [] houses; int numHouses; // Constructor Street() { houses = new House[MAX_HOUSES]; numHouses = 0; } // Methods void addHouse ( House h ) { if ( numHouses == MAX_HOUSES ) { System.out.println( "Error: No more houses can be added." ); } else { houses[ numHouses ] = h; numHouses = numHouses + 1; } } void drawStreet() { int currentX = 0; int counter = 0; while( counter < numHouses ) { fill( random(255), random(255), random(255) ); House temp = houses[counter]; currentX += random( 10, 20 ); temp.drawHouse( currentX ); currentX += temp.getHouseWidth(); counter++; } } } public class House { // List of variables int houseWidth; int houseHeight; //String name; int numWindows; Window [] windows; public House() { windows = new Window[MAX_WINDOWS]; numWindows = 0; houseWidth = 50; houseHeight = 50; } public House( int w, int h ) { windows = new Window[64]; numWindows = 0; houseWidth = w; houseHeight = h; } public void drawHouse( int x ) { rect( x, height - HORIZON - houseHeight, houseWidth, houseHeight ); int counter = 0; while( counter < numWindows ) { Window temp = windows[counter]; rect( temp.getX()+x, height - HORIZON - houseHeight + temp.getY(), temp.getSize(), temp.getSize() ); counter++; } } public void addWindow( Window w ) { if ( numWindows == 64 ) { System.out.println( "Error: No more windows can be added." ); } else { windows[ numWindows ] = w; numWindows = numWindows + 1; } } // public void setNumWindows( int w ) { // numWindows = w; // } public int getNumWindows() { return numWindows; } public int getHouseWidth() { return houseWidth; } } // end of class house // public class Window { int x; int y; int size; // Makes a new window of size tempSize public Window( int tempSize ) { size = tempSize; } public Window( int tempSize, boolean b ) { size = tempSize; if( b ) { System.out.println( "What a nice window" ); } } // Makes a new window of size tempSize public Window( int tempSize, int tempX, int tempY ) { size = tempSize; x = tempX; y = tempY; } public int getX() { return x; } public int getY() { return y; } public int getSize() { return size; } }