Example #1
0
        private string GetHaoBienExtraDesc(Hao haoBien, Hao haoGoc)
        {
            var result = "";

            if (haoBien.NguHanh.Sinh == haoGoc.NguHanh)
            {
                result += ", hồi đầu sinh";
            }
            else if (haoBien.NguHanh.Khac == haoGoc.NguHanh)
            {
                result += ", hồi đầu khắc";
            }

            if (haoBien.Chi.Xung == haoGoc.Chi)
            {
                result += ", hồi đầu xung";
            }
            if (VongTruongSinh.IsMo(haoBien.Chi.NguHanh, haoGoc.Chi))
            {
                result += ", biến mộ";
            }

            if (haoBien.Chi == haoGoc.Chi.Tan)
            {
                result += ", tấn thần";
            }
            else if (haoBien.Chi == haoGoc.Chi.Thoai)
            {
                result += ", thoái thần";
            }

            return(result);
        }
Example #2
0
        public void TestLucThanCuaHao()
        {
            var hao = new Hao {
                Chi = Hoi, HanhCuaQue = Kim
            };

            Assert.AreEqual(hao.LucThan, TuTon);

            hao = new Hao {
                Chi = Hoi, HanhCuaQue = Thuy
            };
            Assert.AreEqual(hao.LucThan, HuynhDe);

            hao = new Hao {
                Chi = Hoi, HanhCuaQue = Moc
            };
            Assert.AreEqual(hao.LucThan, PhuMau);

            hao = new Hao {
                Chi = Hoi, HanhCuaQue = Hoa
            };
            Assert.AreEqual(hao.LucThan, QuanQuy);

            hao = new Hao {
                Chi = Hoi, HanhCuaQue = Tho
            };
            Assert.AreEqual(hao.LucThan, TheTai);
        }
Example #3
0
        private string GetHaoDesc(Hao hao, bool isHaoDong, CanChi nhatThan, CanChi nguyetKien, List <LucThan> lucThan)
        {
            var result   = "";
            var isAmDong = IsAmDong(hao, nhatThan, nguyetKien);

            result += GetDiaChiVaLucThanCuaHao(hao, isHaoDong, lucThan, isAmDong);
            result += GetSuyVuongCuaHao(hao, nhatThan, nguyetKien);

            return(result);
        }
Example #4
0
        private string GetDiaChiVaLucThanCuaHao(Hao hao, bool isHaoDong, List <LucThan> lucThan, bool isAmDong = false)
        {
            string result = "";

            if (isHaoDong)
            {
                if (hao.Duong)
                {
                    result = "o"; // Dương động biến âm.
                }
                else
                {
                    result = "x"; // Âm động biến dương.
                }
            }
            else
            {
                if (isAmDong)
                {
                    result = "+"; // Ám động.
                }
            }

            result = result.PadRight(3);

            result += $"{hao.Chi.Name} {hao.Chi.NguHanh.Name}";
            result  = result.PadRight(13);

            result += $"{hao.AmDuongString}";
            result  = result.PadRight(18);

            result += $"{hao.LucThan.Name}";
            result  = result.PadRight(28);

            if (hao.The)
            {
                result += "THẾ";
            }
            else if (hao.Ung)
            {
                result += "ỨNG";
            }
            else
            {
                result += "   ";
            }

            if (lucThan != null)
            {
                result += $", {lucThan[hao.Id - 1].Name}";
                result  = result.PadRight(43);
            }

            return(result);
        }
Example #5
0
        /// <summary>
        /// Hào ám động là hào tĩnh, vượng tướng và xung với nhật thần.
        /// </summary>
        /// <param name="hao"></param>
        /// <param name="nhatThan"></param>
        /// <param name="nguyetKien"></param>
        /// <returns></returns>
        private bool IsAmDong(Hao hao, CanChi nhatThan, CanChi nguyetKien)
        {
            if (nhatThan.Chi.Xung == hao.Chi)
            {
                if (nhatThan.IsVuongTuong(hao.Chi) || nguyetKien.IsVuongTuong(hao.Chi))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #6
0
        private string GetHaoBienDesc(Hao haoBien, Hao haoGoc, bool isHaoDong, CanChi nhatThan, CanChi nguyetKien)
        {
            var result = "";

            result = GetDiaChiVaLucThanCuaHao(haoBien, isHaoDong, null);

            if (!isHaoDong)
            {
                return(result);
            }

            result += GetHaoBienExtraDesc(haoBien, haoGoc);

            result += GetSuyVuongCuaHao(haoBien, nhatThan, nguyetKien);

            return(result);
        }
Example #7
0
        protected string GetHaoDesc(Que que, Hao hao, bool isHaoDong)
        {
            if (que == null)
            {
                return("");
            }

            string result = "";

            if (isHaoDong)
            {
                if (hao.Duong)
                {
                    result = "o"; // Dương động biến âm.
                }
                else
                {
                    result = "x"; // Âm động biến dương.
                }
            }
            result = result.PadRight(3);

            if (hao.Id == 5)
            {
                result += $"{que.NgoaiQuai.Name} {que.NgoaiQuai.NguHanh.Name}";
            }
            else if (hao.Id == 2)
            {
                result += $"{que.NoiQuai.Name} {que.NoiQuai.NguHanh.Name}";
            }
            result = result.PadRight(13);

            result += $"{hao.AmDuongString}";
            result  = result.PadRight(18);

            if (hao.Id == 5)
            {
                if (que == QueChu)
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ thể" : "Quẻ dụng";
                }
                else if (que == QueHo)
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ hỗ của thể" : "Quẻ hỗ của dụng";
                }
                else
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ thể" : "Quẻ biến";
                }
            }
            else if (hao.Id == 2)
            {
                if (que == QueChu)
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ dụng" : "Quẻ thể";
                }
                else if (que == QueHo)
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ hỗ của dụng" : "Quẻ hỗ của thể";
                }
                else
                {
                    result += QueChu.IsTheQuaiOTren ? "Quẻ biến" : "Quẻ thể";
                }
            }
            result = result.PadRight(28);


            return(result);
        }
Example #8
0
        private string GetSuyVuongCuaHao(Hao hao, CanChi nhatThan, CanChi nguyetKien)
        {
            var result = "";

            if (nhatThan.IsLamKhong(hao.Chi))
            {
                result += ", lâm không";
            }

            // Nguyệt kiến
            if (nguyetKien.Chi.Xung == hao.Chi)
            {
                result += ", nguyệt phá";
            }
            else if (nguyetKien.Chi.Hop == hao.Chi)
            {
                result += ", nguyệt hợp";
            }

            if (nguyetKien.Chi == hao.Chi)
            {
                result += ", nguyệt kiến";
            }
            else if (nguyetKien.IsVuongTuong(hao.Chi))
            {
                result += ", nguyệt vượng";
            }
            else if (nguyetKien.IsHuuTu(hao.Chi))
            {
                result += ", nguyệt tù";
            }

            // Tháng thổ (thìn tuất sửu mùi) sẽ có hào gặp mộ.
            if (nguyetKien.Chi.NguHanh == Tho)
            {
                if (VongTruongSinh.IsMo(hao.Chi.NguHanh, nguyetKien.Chi))
                {
                    result += ", nguyệt mộ";
                }
            }

            // Nhật thần
            if (nhatThan.Chi == hao.Chi)
            {
                result += ", nhật kiến";
            }
            else if (nhatThan.Chi.Xung == hao.Chi)
            {
                if (nhatThan.IsVuongTuong(hao.Chi) || nguyetKien.IsVuongTuong(hao.Chi))
                {
                    result += ", ám động";
                }
                else
                {
                    result += ", nhật phá";
                }
            }
            else
            {
                if (nhatThan.IsVuongTuong(hao.Chi))
                {
                    result += ", nhật vượng";
                }
                else if (nhatThan.IsHuuTu(hao.Chi))
                {
                    result += ", nhật tù";
                }
            }

            // Ngày thổ (thìn tuất sửu mùi) sẽ có hào gặp mộ.
            if (nhatThan.Chi.NguHanh == Tho)
            {
                if (VongTruongSinh.IsMo(hao.Chi.NguHanh, nhatThan.Chi))
                {
                    result += ", nhật mộ";
                }
            }

            return(result);
        }