Esempio n. 1
0
    IEnumerator GenerateNumbers()
    {
        while (true)
        {
            ClassNumbers 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));
        }
    }
Esempio n. 2
0
    private void DeactivateNumbers()
    {
        ClassNumbers oTemp = m_oNumber;

        while (oTemp != null)
        {
            oTemp.enabled = false;
            oTemp         = oTemp.m_oNext;
        }
    }
Esempio n. 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>();

        GameObject   goTemp;
        ClassNumbers 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>();
            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_nDivisors = new int[m_oBoxes.Length];
    }
Esempio n. 4
0
    private void GenerateDividend(ClassNumbers _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;
        }

        Debug.Log( m_nDivisors[nSolution].ToString() + ": " + _oTarget.m_nNumber.ToString() );
        _oTarget.m_nSolution = nSolution;
        _oTarget.UpdateText();
    }
Esempio n. 5
0
    private void GenerateDividend(ClassNumbers _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;
        }

        Debug.Log(m_nDivisors[nSolution].ToString() + ": " + _oTarget.m_nNumber.ToString());
        _oTarget.m_nSolution = nSolution;
        _oTarget.UpdateText();
    }