コード例 #1
0
ファイル: ALifeIO.cs プロジェクト: cristianoferr/jAvida
 public static void loadRegs(string line, IOrganismo o)
 {
     if (line == null)
     {
         return;
     }
     if (line.StartsWith("#REGS: "))
     {
         string[] pars = line.Split(' ');
         for (int i = 0; i < pars.Length; i++)
         {
             string par = pars[i].Trim();
             if (par.Contains("["))
             {
                 par = par.Substring(0, par.IndexOf("[")).Trim();
             }
             if (par.Contains("X:"))
             {
                 string letter = par.Substring(0, 1);
                 string val    = par.Substring(par.IndexOf(":") + 1);
                 o.setReg(ALifeConsts.getLetterNumber(letter.ToCharArray()[0]), int.Parse(val));
             }
             if (par.Contains("SP:"))
             {
                 string val = par.Substring(par.IndexOf(":") + 1);
                 o.setStartPoint(int.Parse(val));
             }
             if (par.Contains("IP:"))
             {
                 string val = par.Substring(par.IndexOf(":") + 1);
                 o.ip = int.Parse(val) + 1;
             }
         }
     }
 }
コード例 #2
0
ファイル: ALifeIO.cs プロジェクト: cristianoferr/jAvida
 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);
 }