Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
 /// <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));
 }