示例#1
0
    IEnumerator GenerateNumbers()
    {
        while (true)
        {
            ClassNumbers_Touch oNext = m_oNumber;
            while (true)
            {
                if (!oNext.enabled)
                {
                    break;
                }
                if (oNext.m_oNext == null)
                {
                    yield return(new WaitForSeconds(m_fDelay));

                    oNext = m_oNumber;
                    continue;
                }
                oNext = oNext.m_oNext;
            }

            oNext.enabled = true;
            oNext.Initialize();
            GenerateDividend(oNext);
            yield return(new WaitForSeconds(m_fDelay));
        }
    }
示例#2
0
    private void DeactivateNumbers()
    {
        ClassNumbers_Touch oTemp = m_oNumber;

        while (oTemp != null)
        {
            oTemp.Initialize();
            oTemp.enabled = false;
            oTemp         = oTemp.m_oNext;
        }
    }
示例#3
0
    void Awake()
    {
        m_bStarted = false;
        if (!m_oCorrect)
        {
            m_oCorrect = GameObject.Find("Plane_Correct");
        }
        if (!m_oWrong)
        {
            m_oWrong = GameObject.Find("Plane_Wrong");
        }
        m_oRemaining = transform.FindChild("Remaining").GetComponent <TextMesh>();
        m_oTimer     = transform.FindChild("Time").GetComponent <TextMesh>();
        m_oCountdown = GameObject.Find("Countdown").GetComponent <TextMesh>();
        m_oScore     = GameObject.Find("Score").GetComponent <TextMesh>();

        GameObject         goTemp;
        ClassNumbers_Touch oTemp = m_oNumber;

        for (int n = 0; n < m_nMaxNumbers - 1; ++n)
        {
            goTemp = GameObject.Instantiate(oTemp.gameObject) as GameObject;
            goTemp.transform.parent     = this.transform;
            goTemp.transform.localScale = Vector3.one;
            oTemp.m_oNext = goTemp.GetComponent <ClassNumbers_Touch>();
            oTemp.m_oNext.Initialize();
            oTemp = oTemp.m_oNext;
        }

        if (m_oBoxes.Length == 0)
        {
            GameObject[] agoTemp = GameObject.FindGameObjectsWithTag("Puzzle");
            m_oBoxes = new ClassBoxes[agoTemp.Length];

            for (int n = 0; n < agoTemp.Length; ++n)
            {
                m_oBoxes[n] = agoTemp[n].GetComponent <ClassBoxes>();
            }
        }

        m_nScore          = 0;
        m_nSavedRemaining = m_nRemaining;
        m_nDivisors       = new int[m_oBoxes.Length];
    }
示例#4
0
    private void GenerateDividend(ClassNumbers_Touch _oTarget)
    {
        int nSolution   = Random.Range(0, m_nDivisors.Length);
        int nDividend   = m_nDivisors[nSolution];
        int nMultiplier = Random.Range(1, m_nMultiplierLimit + 1);

        if (nDividend > 0)
        {
            while (true)
            {
                bool bTemp = true;

                for (int n = 0; n < m_nDivisors.Length; ++n)
                {
                    if (m_nDivisors[n] == nDividend)
                    {
                        continue;
                    }

                    if (nMultiplier == m_nDivisors[n])
                    {
                        bTemp = false;
                        ++nMultiplier;
                    }
                }

                if (bTemp)
                {
                    break;
                }
            }
            _oTarget.m_nNumber = nDividend * nMultiplier;
        }
        else
        {
            nDividend = Random.Range(1, m_nBaseNumberETC * nMultiplier);
            while (true)
            {
                bool bTemp = true;

                for (int n = 0; n < m_nDivisors.Length; ++n)
                {
                    if (m_nDivisors[n] < 2)
                    {
                        continue;
                    }

                    if (nDividend % m_nDivisors[n] == 0)
                    {
                        bTemp = false;
                        ++nDividend;
                    }
                }

                if (bTemp)
                {
                    break;
                }
            }
            _oTarget.m_nNumber = nDividend;
        }

        _oTarget.m_nSolution = m_oBoxes[nSolution].m_nSolution;
        _oTarget.UpdateText();
    }