Une chevre est rentrée dans ton jardin. Tu veux l'attrapper avant qu'il mange toutes les legumes, mais c'est difficile. Alors, attrape-le si tu peux!

  1. Ajoutez un carré noire qui signifie la chevre.
  2. Ajoutez 20 carrés verts qui signifie des legumes.
  3. Ajoutez un écouteur d'événements de souris qui déplace la chevre vers une position aléatoire chaque fois que la souris le touche.

Lorsque la souris touche le carré noir qui signifie la chevre, elle se déplace.

Solution

  private static final double TAILLE_CHEVRE = 60;
  private static final double TAILLE_LEGUMES = 50;
  private static final double NUM_LEGUMES = 20;

  private GRect chevre = new GRect(TAILLE_LEGUMES, TAILLE_LEGUMES);
  
  private RandomGenerator rgen = new RandomGenerator(); 
  
  public void run() {
    ajouterChevre();
    ajouterLegumes(); 
    addMouseListeners(); // ajouter auditeurs de souris
  }

  
  private void ajouterChevre() {
    // ajouter la chevre
    double x = rgen.nextDouble(0, getWidth()-TAILLE_CHEVRE);
    double y = rgen.nextDouble(0, getHeight() - TAILLE_CHEVRE);
    chevre.setLocation(x, y);
    chevre.setFilled(true);
    chevre.setColor(Color.BLACK); //noir
    add(chevre);
  }
  
  private void ajouterLegumes() {
  // ajouter des legumes 
    for (int i = 0; i < NUM_LEGUMES; i ++) {
      double x = rgen.nextDouble(0, getWidth()- TAILLE_LEGUMES);
      double y = rgen.nextDouble(0, getHeight() - TAILLE_LEGUMES);  
      GRect legume = new GRect(x, y, TAILLE_LEGUMES, TAILLE_LEGUMES);
      legume.setFilled(true);
      legume.setColor(Color.GREEN); //vert
      add(legume);
    }
  }
  
  public void mouseMoved(MouseEvent evenement) {
    //si le souris touche la chevre, il bouge
    int sourisX = evenement.getX();
    int sourisY = evenement.getY();
    if (chevre.contains(sourisX, sourisY)) {
      ajouterChevre(); 
    }
  }