📄 newspapercontrolagent.java
字号:
import jade.core.*;import jade.lang.acl.*;import jade.domain.FIPANames.InteractionProtocol;import jade.proto.SimpleAchieveREResponder;public class NewspaperControlAgent extends Agent { /*update the number of newspaper in each machine and when the quantity is lower than some level then inform the newspaper boy refills the newspaper machine by sending a ACLMessage*/ class CountingNumber extends SimpleAchieveREResponder{ public CountingNumber(Agent agent) { super(agent,createMessageTemplate(InteractionProtocol.FIPA_REQUEST)); } /*initialize the number of newspaper of five machines*/ private int number1 = 100; private int number2 = 100; private int number3 = 100; private int number4 = 100; private int number5 = 100; protected ACLMessage prepareResponse(ACLMessage msg) { ACLMessage response = msg.createReply(); /*receive the message from each machine and display the number of newspaper of each machine, when the number of nespaper in some machine is lower than 10, then inform the newspaper boy to refills the machine by sending a ACLMessage*/ if(msg.getContent()!=null && msg.getContent().equals("sell one paper")) { AID sender; sender = msg.getSender(); if(sender.getLocalName().equals("m1")) { number1 --; if (number1 == 50 ) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 50 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number1 == 25) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 25 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number1 == 10) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 10 newspapers"); System.out.println(myAgent.getLocalName() + ":newspaperboy refills newspapers to "+msg.getSender().getLocalName()+" right now"); ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); AID to1 = new AID(); to1.setLocalName("boy"); msg1.setSender(getAID()); msg1.addReceiver(to1); msg1.setContent(msg.getSender().getLocalName()); msg1.setProtocol(InteractionProtocol.FIPA_REQUEST); myAgent.send(msg1); } } if(sender.getLocalName().equals("m2")) { number2 --; if (number2 == 50 ) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 50 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number2 == 25) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 25 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number2 == 10) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 10 newspapers"); System.out.println(myAgent.getLocalName() + ":newspaperboy refills newspapers to "+msg.getSender().getLocalName()+" right now"); ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); AID to1 = new AID(); to1.setLocalName("boy"); msg1.setSender(getAID()); msg1.addReceiver(to1); msg1.setContent(msg.getSender().getLocalName()); msg1.setProtocol(InteractionProtocol.FIPA_REQUEST); myAgent.send(msg1); } } if(sender.getLocalName().equals("m3")) { number3 --; if (number3 == 50 ) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 50 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number3 == 25) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 25 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number3 == 10) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 10 newspapers"); System.out.println(myAgent.getLocalName() + ":newspaperboy refills newspapers to "+msg.getSender().getLocalName()+" right now"); ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); AID to1 = new AID(); to1.setLocalName("boy"); msg1.setSender(getAID()); msg1.addReceiver(to1); msg1.setContent(msg.getSender().getLocalName()); msg1.setProtocol(InteractionProtocol.FIPA_REQUEST); myAgent.send(msg1); } } if(sender.getLocalName().equals("m4")) { number4 --; if (number4 == 50 ) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 50 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number4 == 25) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() +" remained 25 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number4 == 10) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 10 newspapers"); System.out.println(myAgent.getLocalName() + ":newspaperboy refills newspapers to "+msg.getSender().getLocalName()+" right now"); ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); AID to1 = new AID(); to1.setLocalName("boy"); msg1.setSender(getAID()); msg1.addReceiver(to1); msg1.setContent(msg.getSender().getLocalName()); msg1.setProtocol(InteractionProtocol.FIPA_REQUEST); myAgent.send(msg1); } } if(sender.getLocalName().equals("m5")) { number5 --; if (number5 == 50 ) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 50 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number5 == 25) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 25 newspapers"); System.out.println(myAgent.getLocalName() +":add later"); } else if (number5 == 10) { System.out.println(myAgent.getLocalName() + ":" + msg.getSender().getLocalName() + " remained 10 newspapers"); System.out.println(myAgent.getLocalName() + ":newspaperboy refills newspapers to "+msg.getSender().getLocalName()+" right now"); ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); AID to1 = new AID(); to1.setLocalName("boy"); msg1.setSender(getAID()); msg1.addReceiver(to1); msg1.setContent(msg.getSender().getLocalName()); msg1.setProtocol(InteractionProtocol.FIPA_REQUEST); myAgent.send(msg1); } } } /*receive the message which inform the newspaper control machine he will refill the newspaper machine from the newspaper boy */ else if(msg.getContent()!=null && msg.getSender().getLocalName().equals("boy")) { System.out.println(myAgent.getLocalName()+ ":Boy already refills the machine "+msg.getContent()); } return response; } } protected void setup() { System.out.println(getLocalName() +" control center is ready"); addBehaviour(new CountingNumber(this)); }//}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -