1241016781517 false 6 1241016781518 false 00 true true false 100 CONTINUOUS true true 1241016781520 false -120-30 false true true true 0.01 ) { f.oval.setRadiusX(r2); f.oval.setRadiusY(r2); i++; } else remove_food(f); a.statechart.receiveMessage("GoHome"); } else i++; } //no intersections with smell double KPIMax = 0; int iKPI = 0; i = 0; while ( i < smells.size() ) { Smell s = smells.get(i); double dist = a.distanceTo(s); if ( dist < 10 ) { if ( dist < 1 ) { //go away from home to smells direction double ax = s.getX() - house.getX(); double ay = s.getY() - house.getY(); double n = sqrt( ax*ax + ay*ay); ax/=n; ay/=n; a.moveTo( s.getX() + ax * 10, s.getY() + ay * 10); } else { //finds smell with max KPI double KPI = smells.get(i).Value / (dist * dist * dist); if (KPI > KPIMax) { KPIMax = KPI; iKPI = i; } } } i++; } if ( iKPI > 0 ) { //smell found a.moveTo( smells.get(iKPI).getX(), smells.get(iKPI).getY() ); } } else if ( a.statechart.isStateActive(Ant.GoHome) ) { if ( a.distanceTo(house.getX() - 200, house.getY()) < 5 ) { a.statechart.receiveMessage("SearchFood"); double k = house.getScaleX(); double k2 = k + 0.01; house.setScale(k2); } else { //create smell Smell s = add_smells(); s.setXY(a.getX(), a.getY()); } } }]]> CONTINUOUS MOORE RANDOM false USER_DEF true 0 false -120-80 false true true 1241016781522 ARRAY_LIST_BASED count count 1241016782451 false -120-110 false true true 1241016782577 ARRAY_LIST_BASED 1241098482234 false -120-140 false true true 1241101174452 ARRAY_LIST_BASED 1241016781522 false 2000 true true false false false false 0.0 1241016781567 false 400130 true true false true false false 0.0 1241016781569 false -110 true true false true false false 1 SOLID 1 0 1 0 -11563064 00 10-5 10-11 0-6 true 1241016781571 false -14 true true false true false false 1 SOLID 1 0 1 0 -5716507 00 10-5 5-11 -5-6 true 1241016781573 false -115 true true false true false false 1 SOLID 1 0 1 0 -8607017 00 0-6 5-7 10-1 105 true 1241016781575 false -11-1 true true false true false false 1 SOLID 1 0 1 0 -2168075 00 10-5 15-6 5-1 true 1241016781577 false -110 true true false true false false 1 -14734530 SOLID 1 0 1 0 00 10-5 10-11 5-17 0-16 -10-11 -10-5 true 1241016781579 false -94 true true false true false false 1 SOLID 1 0 1 0 -12823945 00 21 2-2 0-3 true 1241016781581 false 17 true true false true false false 1 SOLID 1 0 1 0 -12823945 00 2-1 2-4 0-3 true 1241016781583 false -56 true true false true false false 1 SOLID 1 0 1 0 -12823945 00 21 2-2 0-3 true 1241016781585 false -110 true true false true false false 1 SOLID 1 0 1 0 1342177280 00 42 14-3 10-5 true 1241016782577 false 2000 true true false false false false 0.0 1241101174452 false 2000 true true false false false false 0.0 1241016781528 false 00 true true false true false 190 180 40 20 130 100 -1 -16777216 -12566464 SOUTH -16777216 40 DEFAULT DEFAULT -12566464 true true AUTO <![CDATA[Number Blue]]> -16776961 true NONE true 1 LINEAR <![CDATA[Number Red]]> -65536 true NONE true 1 LINEAR 100 MODEL_TIME_UNITS 1241016781519 false 00 true true false true 100 CONTINUOUS false true 1241016781523 false 60120 false true true -65536 1241016781524 false 6050 false true true -16776961 1241016781525 false 10030 false true true 00 020 1241016781526 false 12080 false true false 00 040 true 1241016781527 false 80120 false true false 00 0-40 true 1241016781521 false -2-2 true true false true false false 1 SOLID 4 4 0.0 -16776961 1241016782450 false 00 true true false true 100 CONTINUOUS false true 1241016782489 false 00 true true false true false false 1 -16777216 SOLID 3 3 0.0 -16711936 1241098447828 false 00 true true false true 100 CONTINUOUS true true 1241101174520 false 7040 false true true 1241101174518 false TEXT_BOX false 1241101174408 false 00 true true false true false false 1 -16777216 SOLID 1 1 0.0 -65281 1241016781530 false 00 true true 0 0 800 600 64 true 1 false 1.0E-5 1.0E-5 1.0E-5 0.0010 false EULER RK45_NEWTON MODIFIED_NEWTON 0 false 4030 true true false true false false 0.0 -16777216 Serif 28 LEFT 0 false 4063 true true false true false false 0.0 -16777216 Serif 16 LEFT false 0 false 40120 true true false false <![CDATA[Муравейник : Simulation]]> SCALE_1