void chonData(int GT, int type, ref List <PhepToan> tmg1, List <PhepToan> lstRank)
    {
        string loai     = "";
        string nameType = "";

        if (type == 1)
        {
            for (int i = GT - 5; i < GT; i++)
            {
                PhepToan vo;
                PhepToan vi;

                int chon1 = UnityEngine.Random.Range(0, 2);
                if (chon1 == 0 && i <= 10)
                {
                    int chontmg = UnityEngine.Random.Range(0, 4);

                    if (chontmg == 0)
                    {
                        loai     = "meo";
                        nameType = ClsLanguage.doConMeo();
                    }
                    else if (chontmg == 1)
                    {
                        loai     = "hoa";
                        nameType = ClsLanguage.doBongHoa();
                    }
                    else
                    {
                        loai     = "tao";
                        nameType = ClsLanguage.doQuaTao();
                    }
                    loai = loai + "" + i;
                    vo   = new PhepToan("" + i, "" + i, loai);
                    vi   = new PhepToan("" + i + " " + nameType, "" + i, "number");
                    tmg1.Add(vo);
                    tmg1.Add(vi);
                }
                else
                {
                    PhepToan        vos;
                    PhepToan        vis;
                    List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                    if (query1.Count > 0)
                    {
                        int vt = UnityEngine.Random.Range(0, query1.Count);
                        vos = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                        vis = new PhepToan("" + i, "" + i, "number");
                    }
                    else
                    {
                        //xem xet
                        vos = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                        vis = new PhepToan("" + i, "" + i, "number");
                    }
                    tmg1.Add(vos);
                    tmg1.Add(vis);
                }
            }
            int gtTam;

            int chon2 = UnityEngine.Random.Range(0, 4);
            if (chon2 == 0)
            {
                loai     = "hinhtron";
                nameType = ClsLanguage.doHinhTron();
                gtTam    = -1;
            }
            else if (chon2 == 1)
            {
                loai     = "hinhtamgiac";
                nameType = ClsLanguage.doHinhTamGiac();
                gtTam    = -2;
            }
            else
            {
                loai     = "hinhvuong";
                nameType = ClsLanguage.doHinhVuong();
                gtTam    = -3;
            }

            PhepToan voh = new PhepToan("", "" + gtTam, loai);
            PhepToan vih = new PhepToan("" + nameType, "" + gtTam, "number");
            tmg1.Add(voh);
            tmg1.Add(vih);
        }
        else
        {
            PhepToan vo;
            PhepToan vi;

            for (int i = GT - 5; i <= GT; i++)
            {
                int chon1 = UnityEngine.Random.Range(0, 5);
                if (type == 2)
                {
                    if ((chon1 == 0 || chon1 == 2) && (i <= 10))
                    {
                        int chontmg = UnityEngine.Random.Range(0, 4);

                        if (chontmg == 0)
                        {
                            loai     = "meo";
                            nameType = ClsLanguage.doConMeo();
                        }
                        else if (chontmg == 1)
                        {
                            loai     = "hoa";
                            nameType = ClsLanguage.doBongHoa();
                        }
                        else
                        {
                            loai     = "tao";
                            nameType = ClsLanguage.doQuaTao();
                        }
                        loai = loai + "" + i;
                        vo   = new PhepToan("" + i, "" + i, loai);
                        vi   = new PhepToan("" + i + " " + nameType, "" + i, "number");
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                    else
                    {
                        List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                        if (query1.Count > 0)
                        {
                            int vt = UnityEngine.Random.Range(0, query1.Count);
                            vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        else
                        {
                            //xem xet
                            vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                }
                else if (type == 3)
                {
                    List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                    if (query1.Count > 0)
                    {
                        int vt = UnityEngine.Random.Range(0, query1.Count);
                        vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                        vi = new PhepToan("" + i, "" + i, "number");
                    }
                    else
                    {
                        //xem xet
                        vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                        vi = new PhepToan("" + i, "" + i, "number");
                    }
                    tmg1.Add(vo);
                    tmg1.Add(vi);
                }
                else if (type == 4)
                {
                    if (chon1 == 0)
                    {
                        List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                        if (query1.Count > 0)
                        {
                            int vt = UnityEngine.Random.Range(0, query1.Count);
                            if (query1.Count != 1)
                            {
                                int vt2 = UnityEngine.Random.Range(0, query1.Count);

                                vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                                vi = new PhepToan("" + query1[vt2].Congthuc, "" + i, "number");
                            }
                            else
                            {
                                vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                                vi = new PhepToan("" + i, "" + i, "number");
                            }
                        }
                        else
                        {
                            //xem xet
                            vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                    else
                    {
                        List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                        if (query1.Count > 0)
                        {
                            int vt = UnityEngine.Random.Range(0, query1.Count);
                            vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        else
                        {
                            //xem xet
                            vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                }
                else if (type == 5)
                {
                    List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                    if (query1.Count > 0)
                    {
                        int vt = UnityEngine.Random.Range(0, query1.Count);
                        if (query1.Count != 1)
                        {
                            int vt2 = UnityEngine.Random.Range(0, query1.Count);

                            vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            vi = new PhepToan("" + query1[vt2].Congthuc, "" + i, "number");
                        }
                        else
                        {
                            vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                    }
                    else
                    {
                        //xem xet
                        vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                        vi = new PhepToan("" + i, "" + i, "number");
                    }
                    tmg1.Add(vo);
                    tmg1.Add(vi);
                }
                else if (type == 6 || type == 7)
                {
                    if (chon1 == 0)
                    {
                        List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                        if (query1.Count > 0)
                        {
                            int vt = UnityEngine.Random.Range(0, query1.Count);
                            vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        else
                        {
                            //xem xet
                            vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                    else if (chon1 == 1)
                    {
                        List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                        if (query1.Count > 0)
                        {
                            int vt = UnityEngine.Random.Range(0, query1.Count);
                            if (query1.Count != 1)
                            {
                                int vt2 = UnityEngine.Random.Range(0, query1.Count);

                                vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                                vi = new PhepToan("" + query1[vt2].Congthuc, "" + i, "number");
                            }
                            else
                            {
                                vo = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                                vi = new PhepToan("" + i, "" + i, "number");
                            }
                        }
                        else
                        {
                            //xem xet
                            vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                    else if (chon1 == 2 || chon1 == 3)
                    {
                        if (chon1 == 2)
                        {
                            if (i > 1)
                            {
                                vo = new PhepToan(ClsLanguage.doSoLienTruoc() + (i + 1), "" + i, "number");
                                vi = new PhepToan("" + i, "" + i, "number");
                            }
                            else
                            {
                                vo = new PhepToan(ClsLanguage.doSoLienSau() + (i - 1), "" + i, "number");
                                vi = new PhepToan("" + i, "" + i, "number");
                            }
                        }
                        else
                        {
                            vo = new PhepToan(ClsLanguage.doSoLienSau() + (i - 1), "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                    else
                    {
                        if (type == 7)
                        {
                            List <PhepToan> query1 = lstRank.FindAll(r => int.Parse(r.Ketqua) == i);
                            if (query1.Count > 0)
                            {
                                int vt = UnityEngine.Random.Range(0, query1.Count);



                                string trs = "";
                                if (vt % 2 == 0)
                                {
                                    if (i > 1)
                                    {
                                        trs = ClsLanguage.doSoLienTruoc() + (i + 1);
                                    }
                                    else
                                    {
                                        trs = ClsLanguage.doSoLienSau() + (i - 1);
                                    }
                                }
                                else
                                {
                                    trs = ClsLanguage.doSoLienSau() + (i - 1);
                                }

                                vo = new PhepToan("" + trs, "" + i, "number");
                                vi = new PhepToan("" + query1[vt].Congthuc, "" + i, "number");
                            }
                            else
                            {
                                //xem xet
                                vo = new PhepToan(ClsLanguage.doNumber() + i, "" + i, "number");
                                vi = new PhepToan("" + i, "" + i, "number");
                            }
                        }
                        else
                        {
                            vo = new PhepToan(ClsLanguage.doSoLienSau() + (i - 1), "" + i, "number");
                            vi = new PhepToan("" + i, "" + i, "number");
                        }
                        tmg1.Add(vo);
                        tmg1.Add(vi);
                    }
                }
            }
        }
    }
Esempio n. 2
0
    public void getDataLevel()
    {
        if (GameController.instance.mGrade == 1)
        {
            if (GameController.instance.level == 1 || GameController.instance.level == 2 || GameController.instance.level == 3)
            {
                string tao     = "";
                string loai    = "tao";
                string tenloai = ClsLanguage.doQuaTao();

                if (GameController.instance.level == 2)
                {
                    loai    = "hoa";
                    tenloai = ClsLanguage.doBongHoa();
                }

                if (GameController.instance.level == 3)
                {
                    loai    = "meo";
                    tenloai = ClsLanguage.doConMeo();
                }

                List <int> lst = new List <int>();
                for (int i = 1; i <= 10; i++)
                {
                    DinhNui dn;
                    tao = loai + i;
                    int chon = UnityEngine.Random.Range(0, 4) + 1;
                    dn = new DinhNui(tao, i + " ", "", "", "", chon, i + " " + tenloai, GameController.instance.level);
                    lst.Add(i);
                    switch (chon)
                    {
                    case 1:
                        dn.Casea = i + " " + tenloai;


                        dn.Caseb = doChonCase(ref lst, 0, 10) + " " + tenloai;

                        dn.Casec = doChonCase(ref lst, 0, 10) + " " + tenloai;
                        dn.Cased = doChonCase(ref lst, 0, 10) + " " + tenloai;


                        break;

                    case 2:
                        dn.Caseb = i + " " + tenloai;

                        dn.Casea = doChonCase(ref lst, 0, 10) + " " + tenloai;

                        dn.Casec = doChonCase(ref lst, 0, 10) + " " + tenloai;
                        dn.Cased = doChonCase(ref lst, 0, 10) + " " + tenloai;

                        break;

                    case 3:
                        dn.Casec = i + " " + tenloai;

                        dn.Caseb = doChonCase(ref lst, 0, 10) + " " + tenloai;

                        dn.Casea = doChonCase(ref lst, 0, 10) + " " + tenloai;
                        dn.Cased = doChonCase(ref lst, 0, 10) + " " + tenloai;


                        break;

                    case 4:
                        dn.Cased = i + " " + tenloai;


                        dn.Caseb = doChonCase(ref lst, 0, 10) + " " + tenloai;

                        dn.Casec = doChonCase(ref lst, 0, 10) + " " + tenloai;
                        dn.Casea = doChonCase(ref lst, 0, 10) + " " + tenloai;


                        break;
                    }
                    lstLevel.Add(dn);

                    lst.Clear();
                }
            }
            else if (GameController.instance.level >= 4 && GameController.instance.level <= 8)
            {
                var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 1).ToList();
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 9 || GameController.instance.level == 10)
            {
                var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 2).ToList();
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 11 || GameController.instance.level == 12)
            {
                var query = ClsThaoTac.ChuanHoaDaTa(12, GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 3).ToList(), 1);
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 13 || GameController.instance.level == 14)
            {
                var query = ClsThaoTac.ChuanHoaDaTa(12, GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 4).ToList(), 1);
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 15 || GameController.instance.level == 16)
            {
                var query = ClsThaoTac.ChuanHoaDaTa(12, GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 5).ToList(), 1);
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 17 || GameController.instance.level == 18)
            {
                var query = ClsThaoTac.ChuanHoaDaTa(12, GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 6).ToList(), 1);
                lstLevel = lstCover(query);
            }
            else if (GameController.instance.level == 19 || GameController.instance.level == 20)
            {
                lstLevel = lstCover(GameController.instance.lstPhepToan1);
            }
        }
        else
        {
            foreach (DinhNui item in GameController.instance.lstSumTam)
            {
                if (item.Level == GameController.instance.level)
                {
                    lstLevel.Add(item);
                }
            }
        }



        doSubGet(ref lstLevel);
        currentState = State.InGame;
    }
    public void Create()
    {
        float           positionX = startX;
        float           positionY = startY;
        List <PhepToan> lstTMG    = new List <PhepToan>();

        int sl = 12;

        if (GameController.instance.level == 1 || GameController.instance.level == 2 || GameController.instance.level == 3)
        {
            string loai     = "";
            string nameType = "";


            for (int i = 1; i <= ((sl / 2) - 1); i++)
            {
                int chontmg = UnityEngine.Random.Range(0, 4);

                if (chontmg == 0)
                {
                    loai     = "meo";
                    nameType = ClsLanguage.doConMeo();
                }
                else if (chontmg == 1)
                {
                    loai     = "hoa";
                    nameType = ClsLanguage.doBongHoa();
                }
                else
                {
                    loai     = "tao";
                    nameType = ClsLanguage.doQuaTao();
                }

                loai = loai + "" + i;
                if (i > 10)
                {
                    loai = "number";
                }
                PhepToan vo = new PhepToan("" + i, "" + i, loai);
                PhepToan vi = new PhepToan("" + i + " " + nameType, "" + i, "number");
                lstTMG.Add(vo);
                lstTMG.Add(vi);
                // lstSapXep.Add(i);
            }

            if (GameController.instance.level == 1)
            {
                loai     = "hinhtron";
                nameType = ClsLanguage.doHinhTron();

                PhepToan vo = new PhepToan("", "" + (-1), loai);
                PhepToan vi = new PhepToan("" + nameType, "" + (-1), "number");
                lstTMG.Add(vo);
                lstTMG.Add(vi);
            }
            else if (GameController.instance.level == 2)
            {
                loai     = "hinhtamgiac";
                nameType = ClsLanguage.doHinhTamGiac();

                PhepToan vo = new PhepToan("", "" + (-2), loai);
                PhepToan vi = new PhepToan("" + nameType, "" + (-2), "number");
                lstTMG.Add(vo);
                lstTMG.Add(vi);
            }
            else
            {
                loai     = "hinhvuong";
                nameType = ClsLanguage.doHinhVuong();

                PhepToan vo = new PhepToan("", "" + (-3), loai);
                PhepToan vi = new PhepToan("" + nameType, "" + (-3), "number");
                lstTMG.Add(vo);
                lstTMG.Add(vi);
            }
        }
        else if (GameController.instance.level == 4 || GameController.instance.level == 5)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 1).ToList();
            chonData(6, 2, ref lstTMG, query);
        }
        else if (GameController.instance.level == 6)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 2).ToList();
            chonData(6, 5, ref lstTMG, query);
            // phep toan vs phep toan lst2
        }
        else if (GameController.instance.level == 7)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 1).ToList();
            chonData(6, 6, ref lstTMG, query);
        }
        else if (GameController.instance.level == 8)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 1).ToList();
            chonData(6, 7, ref lstTMG, query);
        }
        else if (GameController.instance.level == 9)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 2).ToList();
            chonData(6, 1, ref lstTMG, query);
        }
        else if (GameController.instance.level == 10)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 2).ToList();
            chonData(6, 7, ref lstTMG, query);
        }
        else if (GameController.instance.level == 11)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 3).ToList();
            int GT    = 6;

            chonData(GT, 2, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 12)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 3).ToList();
            int GT    = 6;

            chonData(GT, 4, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 13)
        {
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 4).ToList();
            int GT    = 6;

            chonData(GT, 3, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 14)
        {
            int GT    = 6;
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 4).ToList();
            chonData(GT, 5, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 15)
        {
            int GT    = 6;
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 5).ToList();
            chonData(GT, 4, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 16)
        {
            int GT    = 6;
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 5).ToList();
            chonData(GT, 3, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 17)
        {
            int GT    = 6;
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 6).ToList();
            chonData(GT, 3, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 18)
        {
            int GT    = 6;
            var query = GameController.instance.lstPhepToan1.Where(p => int.Parse(p.Loai) == 6).ToList();
            chonData(GT, 5, ref lstTMG, ClsThaoTac.ChuanHoaDaTa(GT, query, 1));
        }
        else if (GameController.instance.level == 19)
        {
            int GT = 6;

            chonData(GT, 4, ref lstTMG, GameController.instance.lstPhepToan1);
        }
        else if (GameController.instance.level == 20)
        {
            int GT = 6;

            chonData(GT, 5, ref lstTMG, GameController.instance.lstPhepToan1);
        }



        if (checkCreate)
        {
            int vt = 1;

            for (int i = 0; i < 12; i++)
            {
                doPhanPhat(ref lstTMG, ref vt, ref positionX, ref positionY);
            }

            checkCreate = false;
        }
        else
        {
            setDataLst(ref lstTMG);
        }



        currentState = State.InGame1;
        txtLoading.gameObject.SetActive(false);
    }