zadanie2
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user