Exemple #1
0
    // Start is called before the first frame update
    void Start()
    {
        _dnaSequenceGenerator = new DnaSequenceGenerator();
        char[] bases = _dnaSequenceGenerator.GenerateSequence(_size);
        correct = new bool[_size];
        pairs   = new Dictionary <int, String[]>();
        for (var i = 0; i < bases.Length; i++)
        {
            bool       isWrong = Random.value <= mistakeRate;
            GameObject b       = Instantiate(baseTemplate, new Vector2(i * 1.2f, this.transform.position.x), this.transform.rotation);
            b.name = bases[i].ToString() + i.ToString();
            b.GetComponentInChildren <BaseButoonAppearance>().label = bases[i].ToString();
            b.GetComponentInChildren <BaseButoonAppearance>().color = DnaSequenceGenerator.getBaseColor(bases[i]);
            b.GetComponentInChildren <BaseButoonAppearance>().id    = i;
            b.GetComponentInChildren <SpriteRenderer>().sprite      = (bases[i].Equals('A') || bases[i].Equals('T') ? tx2d : tx3d);
            b.transform.parent = this.gameObject.transform;

            char       match = _dnaSequenceGenerator.BaseMatch(bases[i], isWrong);
            GameObject c     = Instantiate(baseTemplate, new Vector2(i * 1.2f, this.transform.position.y - 2f), this.transform.rotation);
            c.name = match.ToString() + i.ToString();
            c.GetComponentInChildren <BaseButoonAppearance>().label = match.ToString();
            c.GetComponentInChildren <BaseButoonAppearance>().color = DnaSequenceGenerator.getBaseColor(match);
            c.GetComponentInChildren <BaseButoonAppearance>().id    = i;
            c.GetComponentInChildren <SpriteRenderer>().sprite      = (match.Equals('A') || match.Equals('T') ? tx2d : tx3d);
            c.GetComponentInChildren <SpriteRenderer>().flipY       = true;
            c.GetComponentInChildren <SpriteRenderer>().gameObject.transform.Translate(0, 0.5f, 0);

            c.transform.parent = this.gameObject.transform;

            correct[i] = isWrong;
            pairs[i]   = new string[] { bases[i].ToString(), match.ToString() };
        }
    }
    private void OnTriggerExit2D(Collider2D other)
    {
        Debug.Log("Triggered");
        Debug.Log(_gameObjects.Count);
        if (_gameObjects.Count >= 2)
        {
            var base1 = _gameObjects.Dequeue().GetComponentInChildren <BaseButoonAppearance>().label.ToCharArray()[0];
            var base2 = _gameObjects.Dequeue().GetComponentInChildren <BaseButoonAppearance>().label.ToCharArray()[0];
            if (_dnaSequenceGenerator.BaseMatch(base1) == base2)
            {
                Debug.Log("CORRECT");
            }
            else
            {
                Debug.Log("WRONG");
                score          -= 5;
                scoreLabel.text = score.ToString();
            }
        }

        if (score <= 0)
        {
            SceneManager.LoadScene("GameOverScene");
            PlayerPrefs.SetInt("totalScore", totalScore / 2);
        }
    }