AssemblyCSharp.GenericNumber.Incr C# (CSharp) Method

Incr() public method

public Incr ( ) : void
return void
        public void Incr()
        {
            for (var i = Value.Length - 1; i >= 0; --i) {
                Value [i]++;
                if (Value [i] == _digits [i]) {
                    Value [i] = 0;
                } else {
                    break;
                }
            }
        }

Usage Example

示例#1
0
        List<List<WeightedGroupItem>> InitializePermutations(List<WeightedValue> groups)
        {
            PSDebug.Log ("Initialize permutations: {0}", groups.ToDebugString ());
            var templates = new List<List<WeightedGroupItem>> ();
            var numPerms = 1;
            var digits = new int[groups.Count];
            for (int i = 0; i < groups.Count; i++) {
                var item = groups [i];
                var supplements = _supplements (item);
                supplements.ForEach (spm => spm.Weight *= item.Weight);
                numPerms *= digits [i] = supplements.Count;

                templates.Add (supplements);
            }

            var idx = new GenericNumber (digits);
            var perms = new List<List<WeightedGroupItem>> (numPerms);
            for (var i = 0; i < numPerms; ++i) {
                var row = new List<WeightedGroupItem> ();
                perms.Add (row);

                for (var digit = 0; digit < idx.Value.Length; ++digit) {
                    row.Add (templates [digit] [idx.Value [digit]]);
                }

                idx.Incr ();
            }

            return perms;
        }