public override void executa(IOrganismo o) { int memSize = o.getReg(getByteOrganismo(o, 1)); if (o.child != null) { mundo.dealloc(o.child); o.clearChild(); o.fatalError(); return; } memSize = ALifeConsts.validateMemorySize(o, memSize); if (memSize == 0) { o.fatalError(); return; } IOrganismo child = mundo.alloc(memSize, o); if (child.isAlive()) { o.addFitness(); o.setChild(child); o.setReg(getByteOrganismo(o, 2), child.sp()); } else { o.error(); o.setReg(getByteOrganismo(o, 2), 0); } }
public void setMemoryOwner(int pos, int id) { int calcIndex = ALifeConsts.calcIndex(pos, memorySize); memoryUse[calcIndex] = id; // if (id<0){ //drawPixel(calcIndex, id < 0 ? Color.Black : Color.Red, false); // } }
private void DrawOwner(IOrganismo o, int cor) { int ini = o.sp(); int size = o.getMemorySize(); for (int i = ini; i < ini + size; i++) { int calcIndex = ALifeConsts.calcIndex(i, memorySize); DrawPixel(calcIndex, 255, false); } }
public override void executa(IOrganismo o) { int r1 = getByteOrganismo(o, 1); int v1 = o.getReg(r1); int r2 = getByteOrganismo(o, 2); int v2 = o.getReg(r2); int rPos = getByteOrganismo(o, 3); int vPos = o.getReg(rPos); v1 = ALifeConsts.setBit(v1, vPos, v2); o.setReg(r1, v1); }
public void setMemory(int pos, int v) { int calcIndex = ALifeConsts.calcIndex(pos, memorySize); if (calcIndex < 0) { return; } memory[calcIndex] = v; DrawPixel(calcIndex, v, true); }
public override String getDescription(IOrganismo o, int ip) { return(comment(name + " " + ALifeConsts.getLetter(o.getMemory(ip + 1)), ALifeConsts.getLetter(o.getMemory(ip + 1)) + " <- pop()")); }
public override String getDescription(IOrganismo o, int ip) { return(comment(name + " " + ALifeConsts.getLetter(o.getMemory(ip + 1)) + "," + ALifeConsts.getLetter(o.getMemory(ip + 2)), "Allocate " + ALifeConsts.getLetter(o.getMemory(ip + 1)) + " Bytes; store position in " + ALifeConsts.getLetter(o.getMemory(ip + 2)))); }
public override String getDescription(IOrganismo o, int ip) { return(comment(name + " " + ALifeConsts.getLetter(o.getMemory(ip + 1)) + "," + ALifeConsts.getLetter(o.getMemory(ip + 2)), "if " + ALifeConsts.getLetter(o.getMemory(ip + 1)) + " < " + ALifeConsts.getLetter(o.getMemory(ip + 2)) + " then:")); }
public override String getDescription(IOrganismo o, int ip) { return(comment(name + " " + ALifeConsts.getLetter(o.getMemory(ip + 1)), "push(ip); ip <- " + o.getMemory(ip + 1) + ";")); }
public int getMemoryOwner(int pos) { return(memoryUse[ALifeConsts.calcIndex(pos, memorySize)]); }
public override String getDescription(IOrganismo o, int ip) { return(comment(name + " " + ALifeConsts.getLetter(o.getMemory(ip + 1)), ALifeConsts.getLetter(o.getMemory(ip + 1)) + " <- templatePosition" + (this.bwd ? " BACK " : "") + (this.fwd ? " FWD " : ""))); }