interface Evenement
{
    int getDate () ; /* Renvoie la date `a laquelle effectuer
                      * l''ev'enement. */

    void effectuer (Fenetre fen, FilePrio fp) ;
                     /* Appel'ee au moment d'effectuer l''ev'enement
                      * qui peut dessiner dans fen et rajouter
                      * des 'ev'enements dans fp. */
}

class EvCarre implements Evenement
{
    /* Dessine un carre et g'en'ere un nouveau EvCarre. */
    int date ;  // Date `a laquelle dessiner le carre.
    int x, y ; // carre dessin'e : (x,y) (x+50, y) (x,y+50)

    EvCarre (int d, int xx, int yy) {
	date = d ; x = xx ; y = yy ;
    }

    public int getDate () {
	return date ;
    }

    public final static int dateMort = 3000, delaiSuiv = 300 ;

    public void effectuer (Fenetre fen, FilePrio fp) {
	if (date < dateMort) {
	    fen.rectangle (x, y, x+50, y+50, 1) ; // noir pour le cadre 
	    fen.rectangle (x+1, y+1, x+50-1, y+50-1, 2) ; // rouge pour l'int'erieur
	    EvCarre e2 = new EvCarre (date + delaiSuiv, x+20, y+20) ;
	    fp.ajouter (e2) ;
	} // sinon rien
    }

}

