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(); } }
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); } } }