예제 #1
0
    void chonData(ref List <PhepToan> tmg1, List <PhepToan> lstRank, int loai)
    {
        #region Singleton
        if (loai == 1)
        {
            while (tmg1.Count < 15)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1;
                    if (lstRank[chon].Ketqua % 3 == 0)
                    {
                        pt1 = new PhepToan(ClsLanguage.doNumber() + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    else
                    {
                        pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    PhepToan pt2 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }

            PhepToan pt  = new PhepToan("" + ClsLanguage.doHinhTron(), -1, "number");
            PhepToan pta = new PhepToan("", -1, "hinhtron");
            tmg1.Add(pt);
            tmg1.Add(pta);

            PhepToan pt11 = new PhepToan("" + ClsLanguage.doHinhTamGiac(), -2, "number");
            PhepToan pta1 = new PhepToan("", -2, "hinhtamgiac");
            tmg1.Add(pt11);
            tmg1.Add(pta1);
        }
        else if (loai == 2)
        {
            while (tmg1.Count < 15)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1;
                    if (lstRank[chon].Ketqua % 4 == 0)
                    {
                        pt1 = new PhepToan(ClsLanguage.doNumber() + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    else if (lstRank[chon].Ketqua % 3 == 0)
                    {
                        int nh = UnityEngine.Random.Range(0, 3);
                        if (nh == 0)
                        {
                            if (lstRank[chon].Ketqua > 1)
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienSau() + (lstRank[chon].Ketqua - 1), lstRank[chon].Ketqua, "number");
                            }
                            else
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                            }
                        }
                        else
                        {
                            pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                        }
                    }
                    else
                    {
                        int chon1 = UnityEngine.Random.Range(0, 2);
                        if (chon1 == 0)
                        {
                            pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                        }
                        else
                        {
                            pt1 = ClsThaoTac.getPhepToan(lstRank[chon], lstRank);
                        }
                    }
                    PhepToan pt2 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }

            PhepToan pt  = new PhepToan("" + ClsLanguage.doHinhVuong(), -3, "number");
            PhepToan pta = new PhepToan("", -3, "hinhvuong");
            tmg1.Add(pt);
            tmg1.Add(pta);

            PhepToan pt11 = new PhepToan("" + ClsLanguage.doHinhTamGiac(), -2, "number");
            PhepToan pta1 = new PhepToan("", -2, "hinhtamgiac");
            tmg1.Add(pt11);
            tmg1.Add(pta1);
        }
        else if (loai == 3)
        {
            while (tmg1.Count < 15)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1;
                    if (lstRank[chon].Ketqua % 4 == 0)
                    {
                        pt1 = new PhepToan(ClsLanguage.doNumber() + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    else if (lstRank[chon].Ketqua % 3 == 0)
                    {
                        int nh = UnityEngine.Random.Range(0, 3);
                        if (nh == 0)
                        {
                            if (lstRank[chon].Ketqua > 1)
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienSau() + (lstRank[chon].Ketqua - 1), lstRank[chon].Ketqua, "number");
                            }
                            else
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                            }
                        }
                        else
                        {
                            pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                        }
                    }
                    else
                    {
                        pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    PhepToan pt2 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }

            PhepToan pt  = new PhepToan("" + ClsLanguage.doHinhNgoiSao(), -5, "number");
            PhepToan pta = new PhepToan("", -5, "hinhngoisao");
            tmg1.Add(pt);
            tmg1.Add(pta);

            PhepToan pt11 = new PhepToan("" + ClsLanguage.doHinhLucGiac(), -7, "number");
            PhepToan pta1 = new PhepToan("", -7, "hinhlucgiac");
            tmg1.Add(pt11);
            tmg1.Add(pta1);
        }
        else if (loai == 4 || loai == 7 || loai == 8 || loai == 9 || loai == 10 || loai == 11 || loai == 12 || loai == 15 || loai == 16 || loai == 17 || loai == 18)
        {
            while (tmg1.Count < 20)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1;
                    if (lstRank[chon].Ketqua % 4 == 0)
                    {
                        pt1 = new PhepToan(ClsLanguage.doNumber() + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    else if (lstRank[chon].Ketqua % 6 == 0)
                    {
                        int nh = UnityEngine.Random.Range(0, 3);
                        if (nh == 0)
                        {
                            if (lstRank[chon].Ketqua > 1)
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienSau() + (lstRank[chon].Ketqua - 1), lstRank[chon].Ketqua, "number");
                            }
                            else
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                            }
                        }
                        else
                        {
                            pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                        }
                    }
                    else
                    {
                        int chon1 = UnityEngine.Random.Range(0, 2);
                        if (chon1 == 0)
                        {
                            pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                        }
                        else
                        {
                            pt1 = ClsThaoTac.getPhepToan(lstRank[chon], lstRank);
                        }
                    }
                    PhepToan pt2 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }
        }
        else if (loai == 5 || loai == 6 || loai == 13 || loai == 14)
        {
            while (tmg1.Count < 20)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1;
                    if (lstRank[chon].Ketqua % 4 == 0)
                    {
                        if (chon % 2 == 0)
                        {
                            pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                        }
                        else
                        {
                            pt1 = new PhepToan(ClsLanguage.doNumber() + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                        }
                    }
                    else if (lstRank[chon].Ketqua % 7 == 0)
                    {
                        int nh = UnityEngine.Random.Range(0, 3);
                        if (nh == 0)
                        {
                            if (lstRank[chon].Ketqua > 1)
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienSau() + (lstRank[chon].Ketqua - 1), lstRank[chon].Ketqua, "number");
                            }
                            else
                            {
                                pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                            }
                        }
                        else
                        {
                            pt1 = new PhepToan(ClsLanguage.doSoLienTruoc() + (lstRank[chon].Ketqua + 1), lstRank[chon].Ketqua, "number");
                        }
                    }
                    else
                    {
                        pt1 = new PhepToan("" + lstRank[chon].Ketqua, lstRank[chon].Ketqua, "number");
                    }
                    PhepToan pt2;
                    if (chon % 2 == 0)
                    {
                        pt2 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    }
                    else
                    {
                        pt2 = ClsThaoTac.getCongThuc(lstRank[chon]);
                    }

                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }
        }
        else if (loai == 19)
        {
            var bien = GameController.instance.lstCongTruHai.Concat(GameController.instance.lstCongTruBa).ToList();
            while (tmg1.Count < 20)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    PhepToan pt2 = ClsThaoTac.getPhepToan(lstRank[chon], bien);
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }
        }
        else if (loai == 20)
        {
            var bien = GameController.instance.lstNhanCong23.Concat(GameController.instance.lstNhanCong45).Concat(GameController.instance.lstNhanTru23).Concat(GameController.instance.lstNhanTru45).Concat(GameController.instance.lstTruNhan23).Concat(GameController.instance.lstTruNhan45).ToList();
            while (tmg1.Count < 20)
            {
                int  chon = UnityEngine.Random.Range(0, lstRank.Count);
                bool ok   = false;
                for (int i = 0; i < tmg1.Count; i++)
                {
                    if (lstRank[chon].Ketqua == tmg1[i].Ketqua)
                    {
                        ok = true;
                        break;
                    }
                }
                if (ok == false)
                {
                    PhepToan pt1 = new PhepToan("" + lstRank[chon].Congthuc, lstRank[chon].Ketqua, "number");
                    PhepToan pt2 = ClsThaoTac.getPhepToan(lstRank[chon], bien);
                    tmg1.Add(pt2);
                    tmg1.Add(pt1);
                }
            }
        }
        #endregion
    }