Znn3bq.jpeg
²é¿´: 804  |  »Ø¸´: 1

water11

½ð³æ (ÕýʽдÊÖ)

[ÇóÖú] Java³ÌÐòûÓдíÎ󣬵«²»ÏÔʾ½á¹û£¬ÇóÖ¸µã¡£ ÒÑÓÐ1È˲ÎÓë

java³ÌÐòÔËÐУ¨»·¾³Eclipse£©Ê±Ã»ÓÐÌáʾ´íÎó, µ«ÊDz»ÏÔʾ½á¹û£¬²»Ã÷ËùÒÔ£¬Çë´ó¼Ò°ï°ï棬·Ç³£¸Ðл¡£

Person.java´úÂëÈçÏ£º
public class Person {
        private boolean IsConsuming;
        private boolean IsConcerned;
        private int LastTimeChangeConcernedFromConsumingToNonConsuming;
        private ContinuousSpace <Object> mySpace; // handle for the space
       
        public Person(ContinuousSpace <Object> space, boolean consuming, boolean concerned){
                IsConsuming=consuming;
                IsConcerned=concerned;
                mySpace = space;
                LastTimeChangeConcernedFromConsumingToNonConsuming = 0;
        }       
        @ScheduledMethod (start=1, interval=1 )
        public void step () {
                LastTimeChangeConcernedFromConsumingToNonConsuming++;
        }       
        private void NonConcernedChangeFromConsumingToNonConsuming () {
                if (IsConcerned == false) {
                        double rnd = RandomHelper.nextDouble();
                        if (rnd < 0.1) {
                                IsConsuming = !IsConsuming;
                        }
                }               
        }
        private void ConsumingChangeFromNonConcernedToConcerned () {
                if (IsConcerned == false) {
                        Context <Object> context = ContextUtils.getContext(this);
                        Network <Object> net = (Network<Object> context.getProjection ("communication";
                               
                        Iterable<Object> neighbours = net.getAdjacent(this);
                        for (Object obj : neighbours) {
                                boolean neighbourConcernStatus = ((Person) obj).GetConcernStatus();
                                if (neighbourConcernStatus == true)  {
                                        IsConcerned = true;       
                                }
                        }
                }
        }
        private void ConcernedChangeFromConsumingToConsuming () {
                if ((IsConcerned == true) && (IsConsuming == true)) {
                        Context <Object> context = ContextUtils.getContext(this);
                        Network <Object> net = (Network<Object> context.getProjection ("communication";
                       
                        int number_of_neighbours = 0;
                        int number_of_noncons = 0;
                        Iterable<Object> neighbours = net.getAdjacent(this);
                        for (Object obj : neighbours) {
                                number_of_neighbours++;
                                boolean neighbourConsumingStatus = ((Person) obj).GetConsumingStatus();
                                if (neighbourConsumingStatus == false)  {
                                        number_of_noncons++;
                                }
                        }
                        if (number_of_noncons == number_of_neighbours) {
                                IsConsuming = false;
                                LastTimeChangeConcernedFromConsumingToNonConsuming = 0;
                        }
                }
        }       
        private void NonConsumingChangeFromConcernedToNonConcerned () {
                if ((IsConcerned == true) && (IsConsuming ==false) && (LastTimeChangeConcernedFromConsumingToNonConsuming > 20)) {
                        IsConcerned = false;
                }
        }
        public boolean GetConcernStatus() {
                return IsConcerned;
        }
        public boolean GetConsumingStatus() {
                return IsConsuming;
        }
}
MyStyle.java´úÂëÈçÏ£º
public class MyStyle extends DefaultStyleOGL2D {
        @Override
        public Color getColor(Object obj) {
                if (obj instanceof Person) {
                        Person agent = (Person) obj;
                        if (agent.GetConsumingStatus() == true) {
                                return Color.BLUE;
                        }
                        else {
                                return Color.RED;
                        }
                }
                else {
                        return null;
                }
        }
        @Override
        public VSpatial getVSpatial(Object obj, VSpatial shape) {
                if (obj instanceof Person) {
                        Person agent = (Person) obj;
                        if (agent.GetConcernStatus() == true) { // consuming
                                return shapeFactory.createRectangle(10, 10); // cubic
                        }
                        else {
                                return shapeFactory.createCircle(3, 10);
                        }
                }
                else {
                        return null;
                }
        }
}
MyContextBuilder.java´úÂëÈçÏ£º
public class MyContextBuilder implements ContextBuilder<Object> {
        public Context build(Context<Object> context) {               
                ContinuousSpaceFactory spaceFactory = ContinuousSpaceFactoryFinder.createContinuousSpaceFactory(null);
                ContinuousSpace <Object> space = spaceFactory.createContinuousSpace ("space", context, new SimpleCartesianAdder<Object>(),
                        new repast.simphony.space.continuous.WrapAroundBorders(), new double[]{1, 1});
               
                for (int i=1; i<=3; i++){
                        Person p = new Person(space, true, true);
                        context.add(p);
                }
                for (int i=1; i<=3; i++){
                        Person p = new Person(space, true, false);
                        context.add(p);
                }
                for (int i=1; i<=47; i++){
                        Person p = new Person(space, true, false);
                        context.add(p);
                }
                for (int i=1; i<=47; i++){
                        Person p = new Person(space, false, false);
                        context.add(p);
                }               
                // create network projection
                NetworkBuilder <Object> netBuilder = new NetworkBuilder<Object>("communication", context, false);
               
                NetworkGenerator gen;
                gen = new WattsBetaSmallWorldGenerator(0.25, 8, false); // prob connected, degree, symmetrical = false
                netBuilder.setGenerator(gen);
                netBuilder.buildNetwork();

                RunEnvironment.getInstance().endAt(1000);
                return context;
        }
}
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

erghper

Í­³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

Äã¸øµÄ´úÂë¿´²»³öɶÎÊÌ⣬ÎÒ¾õµÃ¹Ø¼üÊÇÄãÒª¸ù¾ÝJavaÔËÐлúÖÆ£¬Ò»²½Ò»²½È¥Åųý´íÎ󣬱ÈÈçÄãÒªµ÷ÓÃij¸ö·½·¨£¬Äã×îºÃÔÚÕâ¸ö·½·¨ÀïÃæ´òӡһϣ¬³ÌÐòÊDz»ÊǽøÈëÁËÕâ¸ö·½·¨µÈµÈ
2Â¥2014-11-18 09:13:48
ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ water11 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 297£¬¹¤¿Æµ÷¼Á? +5 ºÓÄÏũҵ´óѧ-ÄÜ 2026-04-14 5/250 2026-04-18 15:17 by Equinoxhua
[¿¼ÑÐ] 260Çóµ÷¼Á +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖÐũҵ071010£¬320Çóµ÷¼Á +17 À§À§À§À§À¤À¤ 2026-04-14 19/950 2026-04-17 20:08 by ¹ØÒ»ÕµµÆcd
[¿¼ÑÐ] 294Çóµ÷¼Á +7 µ­È»654321 2026-04-17 8/400 2026-04-17 16:36 by wutongshun
[¿¼ÑÐ] 335Çóµ÷¼Á +20 ÏëÉϰ¶Ñ½£¡£¡ 2026-04-12 23/1150 2026-04-17 10:50 by cuisz
[ÂÛÎÄͶ¸å] ÓÐûÓнÓÊձȽϿìµÄsciÆÚ¿¯Ñ½£¬×îºÃÔÚÒ»¸öÔÂÖ®Äڵģ¬ÑÐÈýº¢×ÓÇó±ÏÒµ 20+4 Ö®»¤×Å 2026-04-16 5/250 2026-04-17 10:02 by bobvan
[¿¼ÑÐ] 291Çóµ÷¼Á +9 ¹ØÒä±±. 2026-04-14 9/450 2026-04-16 22:49 by cfdbai
[¿¼ÑÐ] 294Çóµ÷¼Á +14 µ­È»654321 2026-04-15 14/700 2026-04-16 21:01 by lpl364211
[¿¼ÑÐ] 297£¬¹¤¿Æµ÷¼Á?ºÓÄÏũҵ´óѧ±¾¿Æ +14 ºÓÄÏũҵ´óѧ-ÄÜ 2026-04-14 14/700 2026-04-16 14:41 by dingyanbo1
[¿¼²©] É격×Ô¼ö +3 LinxiaÁÖÏÄ 2026-04-13 3/150 2026-04-16 12:55 by Ä«ºÉ֮¶
[»ù½ðÉêÇë] RY£ºÖйú²ú³öµÄ¿ÆÑ§À¬»øÂÛÎÄ£¬¾ø¶ÔÊýÁ¿ºÍ±ÈÀý¶¼ÊÀ½çµÚÒ» +7 zju2000 2026-04-14 18/900 2026-04-16 11:36 by »¶ÀÖËÌÒ¶Ýè
[¿¼ÑÐ] 322Çóµ÷¼Á +8 123°²¿µ 2026-04-12 15/750 2026-04-16 11:07 by Espannnnnol
[¿¼ÑÐ] 327Çóµ÷¼Á +26 Xxjc1107. 2026-04-13 29/1450 2026-04-16 10:52 by Espannnnnol
[¿¼ÑÐ] Çóµ÷¼ÁѧУ +14 ²»»á³ÔÈâ 2026-04-13 16/800 2026-04-15 21:59 by noqvsozv
[¿¼ÑÐ] Ò»Ö¾Ô¸AÇø211£¬22408 321Çóµ÷¼Á +6 ËæÐÄËùÓû¡î 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[¿¼ÑÐ] 0854µ÷¼Á +13 ³¤¹­°Á 2026-04-12 16/800 2026-04-15 13:45 by fenglj492
[¿¼ÑÐ] Çóµ÷¼Á +12 ºÎÆøÕý 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[¿¼ÑÐ] 105500ҩѧÇóµ÷¼Á +4 x_skys 2026-04-12 4/200 2026-04-14 13:37 by rndfc
[¿¼ÑÐ] 293Çóµ÷¼Á +16 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 18/900 2026-04-13 21:47 by ѧԱJpLReM
[¿¼ÑÐ] µ÷¼Á½áÊø +6 floriea 2026-04-12 8/400 2026-04-12 18:13 by zhouxiaoyu
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û