private static int loadParams(Instruction instruction, string parms, IOrganismo o, int pos) { string[] pars = parms.Split(','); for (int i = 0; i < pars.Length; i++) { string par = pars[i].Trim(); if (par.Length > 0) { char p = par.ToCharArray()[0]; if (p >= 'A' && p <= 'Z') { o.setMemory(o.sp() + pos + i, ALifeConsts.getLetterNumber(p)); } else { o.setMemory(o.sp() + pos + i, int.Parse(par)); } } else { pos--; } } return(pos + pars.Length); }
public override void executa(IOrganismo o) { int inst = o.getMemory(o.ip + 1); inst = mundo.getMutation().mutateInstruction(inst, o); int regVal = o.getReg(getByteOrganismo(o, 2)); o.setMemory(regVal, inst); }
private void randomizeInstruction(IOrganismo o) { int memPos = CRJavaUtils.randomInt(-10, 10); int index = o.ip() + memPos; int inst = o.getMemory(index); inst = changeInstruction(inst); o.setMemory(index, inst); }
private static int loadInstruction(string line, IWorld mundo, IOrganismo o, int pos) { if (line.StartsWith("#")) { return(pos); } if (line.Contains("=")) { line = line.Substring(line.IndexOf("=") + 1).Trim(); } if (line.Contains("//")) { line = line.Substring(0, line.IndexOf("//")).Trim(); } line += " "; int indexOf = line.IndexOf(" "); string param = line.Substring(indexOf).Trim(); string instrCode = line.Substring(0, indexOf).Trim(); Instruction instruction = mundo.getInstruction(instrCode); int step = 1; if (instruction == null) { o.setMemory(o.sp() + pos, int.Parse(instrCode)); } else { o.setMemory(o.sp() + pos, instruction.getId()); step = instruction.getStep(); } pos++; if (step > 1) { pos = loadParams(instruction, param, o, pos); } return(pos); }
private void randomizeInstruction(IOrganismo o) { int memPos = Utils.RandomInt(-10, 10); int index = o.ip + memPos; if (index < o.sp()) { index = o.sp(); } int inst = o.getMemory(index); inst = changeInstruction(inst); o.setMemory(index, inst); }