public ConvergeColor GetColor()
        {
            ConvergeColor color = 0;

            for (int Idx = 1; Idx < amounts.Length; ++Idx)
            {
                if (amounts[Idx] > 0)
                {
                    color |= (ConvergeColor)(1 << (Idx - 1));
                }
            }
            return(color);
        }
        public static int ToIndex(this ConvergeColor self)
        {
            switch (self)
            {
            case ConvergeColor.Colorless: return(0);

            case ConvergeColor.White: return(1);

            case ConvergeColor.Blue: return(2);

            case ConvergeColor.Black: return(3);

            case ConvergeColor.Red: return(4);

            case ConvergeColor.Green: return(5);

            default: throw new ArgumentException();
            }
        }