Пример #1
0
        public override void executa(IOrganismo o)
        {
            mundo.getMutation().divisionMutation(o);
            if (o.child != null)
            {
                if (!o.child.isAlive())
                {
                    mundo.dealloc(o.child);
                    o.criticalError();
                    o.clearChild();
                    return;
                }

                o.child.parent = o;
                if (mundo.start(o.child))
                {
                    if (o.child == null)
                    {
                        o.clearChild();
                        return;
                    }
                    o.addChild();
                    o.child.clearParent();
                    o.clearChild();
                    o.addFitness();
                }
                else
                {
                    o.clearChild();
                    o.criticalError();
                }
            }
            else
            {
                o.fatalError();
            }
        }
Пример #2
0
        public override void executa(IOrganismo o)
        {
            o.fillTemplate(getStep());
            if (o.sizeBuffer == 0)
            {
                o.criticalError();
                return;
            }
            int posF = -1;
            int posB = -1;

            if (fwd && bwd)
            {
                posF = o.searchTemplateFwd();
                posB = o.searchTemplateBwd();
                if (posB < 0)
                {
                    returnPos(o, posF);
                    return;
                }
                if (posF < 0)
                {
                    returnPos(o, posB);
                    return;
                }
                int difF = posF - o.ip;
                int difB = o.ip - posB;
                returnPos(o, difF < difB ? posF : posB);
            }
            else
            {
                if (fwd)
                {
                    posF = o.searchTemplateFwd();
                    returnPos(o, posF);
                }
                if (bwd)
                {
                    posB = o.searchTemplateBwd();
                    returnPos(o, posB);
                }
            }
        }