This commit is contained in:
2023-01-14 16:54:00 +01:00
parent b6a0ca935a
commit 3759567f18

View File

@@ -15,6 +15,8 @@ public class BookBuyerAgent extends Agent
private BookBuyerGui myGui;
private String targetBookTitle;
private int budget = 128;
//list of found sellers
private AID[] sellerAgents;
@@ -140,6 +142,12 @@ public class BookBuyerAgent extends Agent
break;
case 2:
//best proposal consumption - purchase
if(bestPrice > budget)
{
System.out.println(getAID().getLocalName() + ": Cannot buy: " + targetBookTitle + " for: " + bestPrice + ". It is more than budget: " + budget);
step = 4;
break;
}
ACLMessage order = new ACLMessage(ACLMessage.ACCEPT_PROPOSAL);
order.addReceiver(bestSeller);
order.setContent(targetBookTitle);
@@ -153,20 +161,29 @@ public class BookBuyerAgent extends Agent
case 3:
//seller confirms the transaction
reply = myAgent.receive(mt);
if (reply != null) {
if (reply.getPerformative() == ACLMessage.INFORM) {
if (reply != null)
{
if (reply.getPerformative() == ACLMessage.INFORM)
{
//purchase succeeded
System.out.println(getAID().getLocalName() + ": " + targetBookTitle + " purchased for " + bestPrice + " from " + reply.getSender().getLocalName());
// Update budget
budget = budget - bestPrice;
System.out.println("Budget updated, left: " + budget);
System.out.println(getAID().getLocalName() + ": waiting for the next purchase order.");
targetBookTitle = "";
//myAgent.doDelete();
}
else {
else
{
System.out.println(getAID().getLocalName() + ": purchase has failed. " + targetBookTitle + " was sold in the meantime.");
}
step = 4; //this state ends the purchase process
}
else {
else
{
block();
}
break;