// // SimplePuzzle.java // Difficult Puzzle // // Created by Matthew Fahrenbacher on 8/14/04. // Copyright 2004 __MyCompanyName__. All rights reserved. // import java.util.*; import java.awt.*; public class SimplePuzzle { private Rectangle[] rects; private static final int BOXES_WIDE = 4; private static final int BOXES_HIGH = 5; private ArrayList descendents = new ArrayList(); private ArrayList ancestors = new ArrayList(); private ArrayList moves = new ArrayList(); public SimplePuzzle() { rects = new Rectangle[10]; //verticals rects[0] = new Rectangle(0,0,1,2); rects[1] = new Rectangle(0,2,1,2); rects[2] = new Rectangle(3,0,1,2); rects[3] = new Rectangle(3,2,1,2); //mini-squares rects[4] = new Rectangle(0,4,1,1); rects[5] = new Rectangle(1,3,1,1); rects[6] = new Rectangle(2,3,1,1); rects[7] = new Rectangle(3,4,1,1); //big square rects[8] = new Rectangle(1,0,2,2); //horizontal rects[9] = new Rectangle(1,2,2,1); } public SimplePuzzle(SimplePuzzle copy) { rects = new Rectangle[10]; for(int i=0; i BOXES_WIDE || newRect.y + newRect.height > BOXES_HIGH) { return false; } for(int i=0; i