private char[] GenerateDNA() { config.Normalize(); System.Text.StringBuilder sb = null; var chs = config.initiator.ToCharArray(); for (int gen = 0; gen < config.generations; gen++) { sb = new System.Text.StringBuilder(); for (int i = 0; i < chs.Length; i++) { switch (chs[i]) { case 'F': //Forward sb.Append(config.GetRuleF(random.Range(0f, 1f))); break; case 'G': //Generate sb.Append(config.GetRuleG(random.Range(0f, 1f))); break; case '+': //Left case '-': //Right case '[': //Push case ']': //Pop default: sb.Append(chs[i]); break; } } chs = sb.ToString().ToCharArray(); } if (sb != null) { return(sb.ToString().ToCharArray()); } return(null); }
/// <summary> /// 簡易的に利用する乱数発生器 /// </summary> /// <param name="min">最小値</param> /// <param name="max">最大値</param> /// <returns>指定範囲の乱数</returns> public static int RandRange(int min, int max) { return(rand.Range(min, max)); }