Exemplo n.º 1
0
    /// <summary>
    /// 乘法
    /// </summary>
    /// <param name="digitID"></param>
    /// <param name="operandID"></param>
    /// <returns></returns>
    private List <int> GetMultiplicationInstance()
    {
        List <int> instance = null;
        int        product  = 0;
        int        min      = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID);
        int        max      = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID + 2);

        do
        {
            instance = GetInstance(min + 1, max, (int)CurCategoryInstance.operandID);
            product  = GetProduct(instance);
        }while (CanDividedByTen(instance) || HasInstance(instance) || IsRepeat(instance) || !CanMultiply(instance, min));
        checkList.Add(instance);
        instance = Shuffle(instance);
        instance.Add(product);
        return(instance);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 加法
    /// </summary>
    /// <param name="digitID"></param>
    /// <param name="operandID"></param>
    /// <returns></returns>
    private List <int> GetAdditionInstance()
    {
        List <int> instance = null;
        int        sum      = 0;
        int        min      = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID + 1);
        int        max      = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID + 2);

        do
        {
            instance = GetInstance(min, max, (int)CurCategoryInstance.operandID);
            sum      = GetSum(instance);
        }while (CanDividedByTen(instance) || HasInstance(instance) || IsRepeat(instance));
        checkList.Add(instance);
        instance = Shuffle(instance);
        instance.Add(sum);
        return(instance);
    }
Exemplo n.º 3
0
    /// <summary>
    /// 减法
    /// </summary>
    /// <param name="digitID"></param>
    /// <param name="operandID"></param>
    /// <returns></returns>
    private List <int> GetSubtractionInstance()
    {
        List <int> instance   = null;
        int        difference = 0;
        int        min        = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID + 1);
        int        max        = (int)Mathf.Pow(10, (int)CurCategoryInstance.digitID + 2);

        do
        {
            instance = GetInstance(min, max, (int)CurCategoryInstance.operandID);
        }while (CanDividedByTen(instance) || HasInstance(instance) || IsRepeat(instance) || !CanMinus(instance, min, out difference));
        checkList.Add(instance);
        int minuend = instance[0];

        instance.RemoveAt(0);
        instance = Shuffle(instance);
        instance.Insert(0, minuend);
        instance.Add(difference);
        return(instance);
    }