⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newspapercontrolagent.java

📁 自己编写的一个Jade 的agent卖报纸小程序 可以自动添加报纸
💻 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 + -