1 import java
.util
.Comparator
;
4 author
= "Jérôme Benoit",
7 public class Image
extends Forme
implements Compactable
,
10 final int IMAGE_MAX_SIZE
= 100;
11 Forme
[] formeCollection
;
16 formeCollection
= new Forme
[IMAGE_MAX_SIZE
];
22 formeCollection
= new Forme
[IMAGE_MAX_SIZE
];
26 public int getSize() {
30 private boolean isEmpty() {
31 return (formeNumber
== 0);
34 private boolean isFull() {
35 return (formeNumber
>= formeCollection
.length
);
38 public void dessiner(Piletransformations pile
) {
39 for (int i
= 0; i
< formeNumber
; i
++) {
40 formeCollection
[i
].dessiner(pile
);
44 public void deplacer(Point p
) {
45 for (int i
= 0; i
< formeNumber
; i
++) {
46 formeCollection
[i
].deplacer(p
);
50 public boolean ajouter(Forme forme
) {
51 boolean rtVal
= false;
53 formeCollection
[formeNumber
] = forme
;
60 public boolean supprimer(int index
) {
61 boolean rtVal
= false;
63 for (int j
= index
; (j
< formeNumber
- 1 && index
< formeNumber
); j
++) {
64 formeCollection
[j
] = formeCollection
[j
+ 1];
72 public void afficher() {
73 String className
= this.getClass().getSimpleName();
74 System
.out
.println("---- " + className
+ " ----");
75 for (int i
= 0; i
< formeNumber
; i
++) {
76 formeCollection
[i
].afficher();
80 public void compacter(int nElements
) {
82 /* int minIndex = formeNumber - nElements - 1;
83 for (int i = formeNumber - 1; (i > minIndex && !isEmpty()); i--) {
86 // Lightweight solution
87 if (formeNumber
- nElements
> 0) {
88 formeNumber
-= nElements
;
94 public int compareTo(Image image
) {
95 return formeNumber
- image
.getSize();
98 public int compare(Image image1
, Image image2
) {
99 return (int)(image1
.getpOri().getY() - image2
.getpOri().getY());