1. C# / Говнокод #23166

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    public static int[] GetRandomComStats(int level)
        {
            int[] stats = new int[3] { -1, -1, -1 };
            int summ = (int)(1.2f * level);
            int minStat = level / 3f - (level+ 1) / 10 < 0 ? 0 : (int)(level / 3f - (level + 1) / 10);
            int maxStat = (int)(level / 3f + (level + 1) / 10);
            Debug.Log("level: " + level + " min stat: " + minStat + " max stat: " + maxStat + " summ: " + summ);
            int fr = Random.Range(0, 2);
            int f2 = Random.Range(0, 3);
            int f1 = 0;
            stats[f2] = Random.Range(minStat, maxStat + 1);
            for (int i = 0; i < 3; i++)
            {
                if (fr == 1 && stats[i] == -1)
                {
                    if (summ - stats[f2] > maxStat) stats[i] = Random.Range(minStat,  maxStat + 1);
                    else if (summ - stats[f2] < 0) stats[i] = 0;
                    else stats[i] = Random.Range(minStat, summ - stats[f2] + 1);
                    f1 = i;
                    goto label;
                }
                fr = 1;
    
            }
            label: 
            for (int i = 0; i < 3; i++)
            {
                if (stats[i] == -1)
                {
                    if (summ < stats[f1] + stats[f2]) stats[i] = 0;
                    else if (summ - stats[f1] - stats[f2] > maxStat) stats[i] = maxStat;
                    else stats[i] = summ - stats[f1] - stats[f2];
                    Debug.Log(f1 + ": " + stats[f1]+ " " + f2 + ": " + stats[f2] + " " + i + ": " + stats[i]);
                }
            }
            return stats;
        }

    Генерация рандомных стат персонажей в зависимости от уровня.

    Запостил: Super_Indus_coding, 07 Июля 2017

    Комментарии (1) RSS

    • Единственное что здесь для меня странно, это goto label;
      Ответить

    Добавить комментарий