Ejemplo n.º 1
0
        public void Check_NguThuDon_Mau_Hoi()
        {
            Tru tru = LookUpTable.NguThuDon(CanEnum.Mau, ChiEnum.Hoi);

            Assert.AreEqual <CanEnum>(CanEnum.Quy, tru.ThienCan.Can);
            Assert.AreEqual <ChiEnum>(ChiEnum.Hoi, tru.DiaChi.Ten);
        }
Ejemplo n.º 2
0
        public void Check_NguHoDon_Giap_Mao()
        {
            Tru tru = LookUpTable.NguHoDon(CanEnum.Giap, ChiEnum.Mao);

            Assert.AreEqual <CanEnum>(CanEnum.Dinh, tru.ThienCan.Can);
            Assert.AreEqual <ChiEnum>(ChiEnum.Mao, tru.DiaChi.Ten);
        }
Ejemplo n.º 3
0
        public void Check_NguThuDon_Binh_Suu()
        {
            Tru tru = LookUpTable.NguThuDon(CanEnum.Binh, ChiEnum.Suu);

            Assert.AreEqual <CanEnum>(CanEnum.Ky, tru.ThienCan.Can);
            Assert.AreEqual <ChiEnum>(ChiEnum.Suu, tru.DiaChi.Ten);
        }
Ejemplo n.º 4
0
        public void Check_NguThuDon_Dinh_Dan()
        {
            Tru tru = LookUpTable.NguThuDon(CanEnum.Dinh, ChiEnum.Dan);

            Assert.AreEqual <CanEnum>(CanEnum.Nham, tru.ThienCan.Can);
            Assert.AreEqual <ChiEnum>(ChiEnum.Dan, tru.DiaChi.Ten);
        }
Ejemplo n.º 5
0
        public void SetNapAm(Tru tru)
        {
            NguHanhEnum nguHanh;

            LookUpTable.NapAm.TryGetValue(new Tuple <CanEnum, ChiEnum>(tru.ThienCan.Can, tru.DiaChi.Ten), out nguHanh);
            tru.ThuocTinh.Add(Constants.NAP_AM, nguHanh);
        }
Ejemplo n.º 6
0
        public void Check_NguThuDon_At_Than()
        {
            Tru tru = LookUpTable.NguThuDon(CanEnum.At, ChiEnum.Than);

            Assert.AreEqual <CanEnum>(CanEnum.Giap, tru.ThienCan.Can);
            Assert.AreEqual <ChiEnum>(ChiEnum.Than, tru.DiaChi.Ten);
        }
Ejemplo n.º 7
0
        public void CreateDaiVan(int age = Int16.MinValue, int daiVanHienTai = Int16.MinValue)
        {
            int direction = 1;

            if ((this.LaSoCuaToi.GioiTinh == GioiTinhEnum.Nam && this.LaSoCuaToi.TuTru[Constants.TRU_NAM].ThienCan.AmDuong == AmDuongEnum.Duong) ||
                (this.LaSoCuaToi.GioiTinh == GioiTinhEnum.Nu && this.LaSoCuaToi.TuTru[Constants.TRU_NAM].ThienCan.AmDuong == AmDuongEnum.Am))
            {
                direction = 1;
            }
            else if ((this.LaSoCuaToi.GioiTinh == GioiTinhEnum.Nam && this.LaSoCuaToi.TuTru[Constants.TRU_NAM].ThienCan.AmDuong == AmDuongEnum.Am) ||
                     (this.LaSoCuaToi.GioiTinh == GioiTinhEnum.Nu && this.LaSoCuaToi.TuTru[Constants.TRU_NAM].ThienCan.AmDuong == AmDuongEnum.Duong))
            {
                direction = -1;
            }

            var canThang = this.LaSoCuaToi.TuTru[Constants.TRU_THANG].ThienCan.Can;
            var chiThang = this.LaSoCuaToi.TuTru[Constants.TRU_THANG].DiaChi.Ten;

            int canIndex = TongHopCanChi.MuoiThienCan.FindIndex(u => u.Can == canThang);
            int chiIndex = TongHopCanChi.MuoiHaiDiaChi.FindIndex(u => u.Ten == chiThang);

            int nCan = TongHopCanChi.MuoiThienCan.Count;
            int nChi = TongHopCanChi.MuoiHaiDiaChi.Count;

            for (int i = 0; i < Constants.SO_DAI_VAN; i++)
            {
                canIndex = (canIndex + nCan + direction) % nCan;
                chiIndex = (chiIndex + nChi + direction) % nChi;
                this.LaSoCuaToi.DaiVan.Add(new Tru(TongHopCanChi.MuoiThienCan[canIndex], TongHopCanChi.MuoiHaiDiaChi[chiIndex]));
            }

            //populate ages
            if (age != Int16.MinValue)
            {
                for (int i = 0; i < Constants.SO_DAI_VAN; i++)
                {
                    this.LaSoCuaToi.TuoiDaiVan.Add(age);
                    age += Constants.NAM_DAI_VAN;
                }
            }

            //Tru cua Dai Van hien tai
            if (daiVanHienTai != Int16.MinValue)
            {
                this.DaiVanHienTai = this.LaSoCuaToi.DaiVan[this.LaSoCuaToi.TuoiDaiVan.FindIndex(u => u == daiVanHienTai)];
            }
            else
            {
                this.DaiVanHienTai = this.LaSoCuaToi.DaiVan[0];
            }

            this.LuuNien = LookUpTable.TruOfTheYear();
        }
Ejemplo n.º 8
0
        public void CreateThaiNguyen()
        {
            int canThangIndex = TongHopCanChi.MuoiThienCan.FindIndex(u => u.Can == this.LaSoCuaToi.TuTru[Constants.TRU_THANG].ThienCan.Can);
            int chiThangIndex = TongHopCanChi.MuoiHaiDiaChi.FindIndex(u => u.Ten == this.LaSoCuaToi.TuTru[Constants.TRU_THANG].DiaChi.Ten);

            int nCan = TongHopCanChi.MuoiThienCan.Count;
            int nChi = TongHopCanChi.MuoiHaiDiaChi.Count;

            int thaiNguyenCanIndex = (canThangIndex + Constants.THAI_NGUYEN_CAN_SHIFT + nCan) % nCan;
            int thaiNguyenChiIndex = (chiThangIndex + Constants.THAI_NGUYEN_CHI_SHIFT + nChi) % nChi;

            var thaiNguyen = new Tru(TongHopCanChi.MuoiThienCan[thaiNguyenCanIndex], TongHopCanChi.MuoiHaiDiaChi[thaiNguyenChiIndex]);

            this.LaSoCuaToi.ThaiNguyen = thaiNguyen;
            //this.LaSoCuaToi.TuTru.Add(Constants.THAI_NGUYEN, thaiNguyen);
        }
Ejemplo n.º 9
0
        private void KhongVong()
        {
            Tru ngay = this.TTM.LaSoCuaToi.TuTru[Constants.TRU_NGAY];

            int canNgayId = TongHopCanChi.MuoiThienCan.FindIndex(u => u.Can == ngay.ThienCan.Can);
            int quyId     = TongHopCanChi.MuoiThienCan.FindIndex(u => u.Can == CanEnum.Quy);

            int steps     = quyId - canNgayId;
            int chiNgayId = TongHopCanChi.MuoiHaiDiaChi.FindIndex(u => u.Ten == ngay.DiaChi.Ten);
            int n         = TongHopCanChi.MuoiHaiDiaChi.Count;

            int kv1 = (chiNgayId + steps + 1) % n;
            int kv2 = (chiNgayId + steps + 2) % n;

            TongHopCanChi.MuoiHaiDiaChi[kv1].AddThanSat(Constants.ThanSat.KHONG_VONG);
            TongHopCanChi.MuoiHaiDiaChi[kv2].AddThanSat(Constants.ThanSat.KHONG_VONG);
        }
Ejemplo n.º 10
0
        public void CreateTuTru(string gioiTinh,
                                string canNam, string chiNam,
                                string canThang, string chiThang,
                                string canNgay, string chiNgay,
                                string canGio, string chiGio)
        {
            CanEnum      e_canNam, e_canThang, e_canNgay, e_canGio;
            ChiEnum      e_chiNam, e_chiThang, e_chiNgay, e_chiGio;
            GioiTinhEnum e_gt;

            bool cvtGt = Enum.TryParse <GioiTinhEnum>(gioiTinh, true, out e_gt);

            cvtGt &= Enum.IsDefined(typeof(GioiTinhEnum), e_gt);

            bool cvtCanNam = Enum.TryParse <CanEnum>(canNam, true, out e_canNam);

            cvtCanNam &= Enum.IsDefined(typeof(CanEnum), e_canNam);

            bool cvtCanThang = Enum.TryParse <CanEnum>(canThang, true, out e_canThang);

            cvtCanThang &= Enum.IsDefined(typeof(CanEnum), e_canThang);

            bool cvtCanNgay = Enum.TryParse <CanEnum>(canNgay, true, out e_canNgay);

            cvtCanNgay &= Enum.IsDefined(typeof(CanEnum), e_canNgay);

            bool cvtCanGio = Enum.TryParse <CanEnum>(canGio, true, out e_canGio);

            cvtCanGio &= Enum.IsDefined(typeof(CanEnum), e_canGio);


            bool cvtChiNam = Enum.TryParse <ChiEnum>(chiNam, true, out e_chiNam);

            cvtChiNam &= Enum.IsDefined(typeof(ChiEnum), e_chiNam);

            bool cvtChiThang = Enum.TryParse <ChiEnum>(chiThang, true, out e_chiThang);

            cvtChiThang &= Enum.IsDefined(typeof(ChiEnum), e_chiThang);

            bool cvtChiNgay = Enum.TryParse <ChiEnum>(chiNgay, true, out e_chiNgay);

            cvtChiNgay &= Enum.IsDefined(typeof(ChiEnum), e_chiNgay);

            bool cvtChiGio = Enum.TryParse <ChiEnum>(chiGio, true, out e_chiGio);

            cvtChiGio &= Enum.IsDefined(typeof(ChiEnum), e_chiGio);

            if (!(cvtCanNam && cvtCanThang && cvtCanNgay && cvtCanGio &&
                  cvtChiNam && cvtChiThang && cvtChiNgay && cvtChiGio &&
                  cvtGt))
            {
                this.LaSoCuaToi = null;
            }
            else
            {
                this.LaSoCuaToi = new LaSo();
                Tru truNam = new Tru(TongHopCanChi.MuoiThienCan.Single <ThienCan>(u => u.Can == e_canNam),
                                     TongHopCanChi.MuoiHaiDiaChi.Single <DiaChi>(u => u.Ten == e_chiNam));
                Tru truThang = new Tru(TongHopCanChi.MuoiThienCan.Single <ThienCan>(u => u.Can == e_canThang),
                                       TongHopCanChi.MuoiHaiDiaChi.Single <DiaChi>(u => u.Ten == e_chiThang));
                Tru truNgay = new Tru(TongHopCanChi.MuoiThienCan.Single <ThienCan>(u => u.Can == e_canNgay),
                                      TongHopCanChi.MuoiHaiDiaChi.Single <DiaChi>(u => u.Ten == e_chiNgay));
                Tru truGio = new Tru(TongHopCanChi.MuoiThienCan.Single <ThienCan>(u => u.Can == e_canGio),
                                     TongHopCanChi.MuoiHaiDiaChi.Single <DiaChi>(u => u.Ten == e_chiGio));

                this.LaSoCuaToi.TuTru.Add(Constants.TRU_NAM, truNam);
                this.LaSoCuaToi.TuTru.Add(Constants.TRU_THANG, truThang);
                this.LaSoCuaToi.TuTru.Add(Constants.TRU_NGAY, truNgay);
                this.LaSoCuaToi.TuTru.Add(Constants.TRU_GIO, truGio);

                this.LaSoCuaToi.GioiTinh = e_gt;
            }
        }
Ejemplo n.º 11
0
 public static bool IsTruMatched(Tru t, CanEnum can, ChiEnum chi)
 {
     return(t.ThienCan.Can == can && t.DiaChi.Ten == chi);
 }