예제 #1
0
 @Override
 public boolean done() {
   if (finished) {
     if (myAgent.getBestProvider() == null) {
       System.out.println("Tempis pour ce fournisseur..");
     } else if (myAgent.getBestProvider().equals(myAgent.getAID())) {
       System.out.println("J'ai reçu la réponse que j'attendais de " + myAgent.getAID());
     }
   }
   return finished;
 }
예제 #2
0
 @Override
 public void action() {
   AID[] providers = myAgent.getProvidersInDeal();
   ACLMessage msg = new ACLMessage(ACLMessage.QUERY_REF);
   if (providers.length != 0) {
     for (AID aid : providers) {
       msg.addReceiver(aid);
       // TODO récupérer la ref du produit qu'on veut vraiment acheter
       msg.setContent(String.valueOf(objet.getRefObjet()));
       myAgent.send(msg);
       System.out.println(
           "Requête de prix envoyé a "
               + aid
               + " pour l'objet de reférence "
               + String.valueOf(objet.getRefObjet()));
     }
   }
 }
예제 #3
0
  @Override
  public void action() {
    // On attend un message précis INFORM d'un provider préçis
    ACLMessage msg = myAgent.receive(mt);
    // if (countAttente < 3) {
    if (msg != null) {
      // On vérifie l'existence ce provider dans le DF
      String content = msg.getContent();
      double price = 0;
      double betterPrice = 0;
      if (content != null) {
        try {
          price = Double.valueOf(content);
          betterPrice = myAgent.getBestPrice();
          // On regarde si le prix que nous a proposé ce founisseur est plus avantageux
          if (price < betterPrice) {
            myAgent.setBestProvider(msg.getSender());
            myAgent.setBestPrice(price);
          }
        } catch (NumberFormatException e) {
          System.err.println("Prix reçu au mauvais format!");
        } catch (Exception e) {
          System.err.println("Problème pour la transformation de string en double");
        }

        // Ce fournisseur nous a répondu, le Behaviour est donc fini
      }
      finished = true;
    } else {
      block(VendeurAgent.TEMPS_POUR_REPONDRE);
    }
    //        } else {
    //            finished = true;
    //        }
    //        countAttente++;
  }
예제 #4
0
 @Override
 public int onEnd() {
   System.out.println("tresorerie = " + myAgent.getTresorerie());
   return super.onEnd();
 }