public static byte[][] randomPuzzle(int maxDepth) {
		byte[][] puzzle = new byte[3][3];
		int[] chips = new int[9];
		for (int i = 0; i < 9; i++) {
			chips[i] = i;
		}
		for (int i = 0; i < 9; i++) {
			puzzle[i/3][i%3] = (byte)chips[i];
		}
		Node n = new Node(puzzle);
		Random rnd = new Random();
		for (int i = 0; i < maxDepth; i++) {
			boolean done = false;
			while (!done) {
				int direction = rnd.nextInt(4);
				if (n.canMove(direction)) {
					n = new Node(n, (byte)direction);
					done = true;
				}
			}
		}
		System.out.println(n.toString());
		return n.getBoard();
	}