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