示例#1
0
        private bool 辅拱文星格(PaiPan pan)
        {
            // 文昌、文曲在命宫,有辅弼两星在三方四正拱照或左右邻宫相夹。

            if (pan.MingGong.Stars.Exists(s => s.Name == "文昌") && pan.MingGong.Stars.Exists(s => s.Name == "文曲"))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "左辅"));
                Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "右弼"));

                if (g1 != null && g2 != null)
                {
                    return(true);
                }

                if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "左辅") &&
                    pan.MingGong.Next.Stars.Exists(s => s.Name == "右弼"))
                {
                    return(true);
                }

                if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "右弼") &&
                    pan.MingGong.Next.Stars.Exists(s => s.Name == "左辅"))
                {
                    return(true);
                }
            }
            return(false);
        }
示例#2
0
        private bool 日月并明格(PaiPan pan)
        {
            // 日月位于三方四正中,且太阳在巳,太阴在酉或太阳在辰,太阴在戌,为本格。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr     = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   taiyang = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阳"));
            Gong   taiyin  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阴"));

            // 日月位于三方四正中
            if (taiyang != null && taiyin != null)
            {
                // 太阳在巳,太阴在酉
                if (taiyang.ZhiString == "巳" && taiyin.ZhiString == "酉")
                {
                    return(true);
                }

                // 太阳在辰,太阴在戌
                if (taiyang.ZhiString == "辰" && taiyin.ZhiString == "戌")
                {
                    return(true);
                }
            }

            return(false);
        }
示例#3
0
        private bool 君臣庆会格(PaiPan pan)
        {
            // 命宫有紫微星,且于三方四正中有至少有左辅、右弼任何一星加会或同宫,或两星于两临宫相夹。

            if (pan.MingGong.Stars.Exists(s => s.Name == "紫薇"))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);
                Gong[]    arr  = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong      g1   = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "左辅"));
                Gong      g2   = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "右弼"));

                // 左辅、右弼任何一星加会或同宫
                if (g1 != null || g2 != null)
                {
                    return(true);
                }

                // 两星于两临宫相夹
                if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "左辅") &&
                    pan.MingGong.Next.Stars.Exists(s => s.Name == "右弼"))
                {
                    return(true);
                }

                if (pan.MingGong.Previous.Stars.Exists(s => s.Name == "右弼") &&
                    pan.MingGong.Next.Stars.Exists(s => s.Name == "左辅"))
                {
                    return(true);
                }
            }

            return(false);
        }
示例#4
0
        private bool 紫府朝垣格(PaiPan pan)
        {
            // 紫薇、天府于三方四正照命。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            if (sfsz.DuiZhaoGong.Stars.Exists(s => s.Name == "紫薇") &&
                sfsz.DuiZhaoGong.Stars.Exists(s => s.Name == "天府"))
            {
                return(true);
            }

            return(false);
        }
示例#5
0
        private bool 天乙拱命格(PaiPan pan)
        {
            // 天魁,天钺俱在三方四正中。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天魁"));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天钺"));

            if (g1 != null && g2 != null)
            {
                return(true);
            }
            return(false);
        }
示例#6
0
        private bool 权禄巡逢格(PaiPan pan)
        {
            // 化禄、化权俱在三方四正中。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => "禄" == s.Hua));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => "权" == s.Hua));

            if (g1 != null && g2 != null)
            {
                return(true);
            }

            return(false);
        }
示例#7
0
        public static BasicGong SanFangSiZheng(PaiPan pan, string name)
        {
            //三方四正
            var model = new BasicGong();

            model.SelfGong = pan.Gongs.First(g => g.Name == name);

            int dui = (model.SelfGong.Zhi + 6) % 12;

            if (dui == 0)
            {
                dui = 12;
            }
            else if (dui < 0)
            {
                dui += 12;
            }

            int hui1 = (model.SelfGong.Zhi + 4) % 12;

            if (hui1 == 0)
            {
                hui1 = 12;
            }
            else if (hui1 < 0)
            {
                hui1 += 12;
            }


            int hui2 = (model.SelfGong.Zhi - 4) % 12;

            if (hui2 == 0)
            {
                hui2 = 12;
            }
            else if (hui2 < 0)
            {
                hui2 += 12;
            }

            model.DuiZhaoGong = pan.Gongs[dui - 1];
            model.HuiGongs.Add(pan.Gongs[hui1 - 1]);
            model.HuiGongs.Add(pan.Gongs[hui2 - 1]);

            return(model);
        }
示例#8
0
        private bool 铃陀格(PaiPan pan)
        {
            // 在三方四正中,四煞只有铃星及陀罗,才入格。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "火星"));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "擎羊"));
            Gong   g3  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "陀罗"));
            Gong   g4  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "铃星"));

            if (g1 == null && g2 == null && g3 != null && g4 != null)
            {
                return(true);
            }
            return(false);
        }
示例#9
0
        private bool  合火铃贪格(PaiPan pan)
        {
            // 贪狼守命,遇火星、铃星俱在命或三方会照。
            if (pan.MingGong.Stars.Exists(s => s.Name == "贪狼"))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "火星"));
                Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "铃星"));

                if (g1 != null && g2 != null)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#10
0
        private bool 科名会禄格(PaiPan pan)
        {
            // 化科在命宫,化禄在三方四正会照。

            if (pan.MingGong.Stars.Exists(s => "科" == s.Hua))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => "禄" == s.Hua));
                if (g1 != null)
                {
                    return(true);
                }
            }

            return(false);
        }
示例#11
0
        private bool 马落空亡格(PaiPan pan)
        {
            // 天马遇地劫、地空同宫或三方冲照。

            if (pan.MingGong.Stars.Exists(s => s.Name == "天马"))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "地劫"));
                Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "地空"));
                if (g1 != null && g2 != null)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#12
0
        private bool 阳梁昌禄格(PaiPan pan)
        {
            // 三方四正会齐了太阳、天梁、文昌、禄存四星。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阳"));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天梁"));
            Gong   g3  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "文昌"));
            Gong   g4  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "禄存"));

            if (g1 != null && g2 != null && g3 != null && g4 != null)
            {
                return(true);
            }

            return(false);
        }
示例#13
0
        private bool 机月同梁格(PaiPan pan)
        {
            // 于三方四正中有天机、太阴、天同、天梁四星交会。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天机"));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "太阴"));
            Gong   g3  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天同"));
            Gong   g4  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天梁"));

            if (g1 != null && g2 != null && g3 != null && g4 != null)
            {
                return(true);
            }

            return(false);
        }
示例#14
0
        private bool 巨逢四煞格(PaiPan pan)
        {
            // 巨门守命,且在三方四正中,与羊陀火铃四煞同时有会照或同宫关系。
            if (pan.MingGong.Stars.Exists(s => s.Name == "巨门"))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "火星"));
                Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "擎羊"));
                Gong   g3  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "陀罗"));
                Gong   g4  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "铃星"));
                if (g1 != null && g2 != null && g3 != null && g4 != null)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#15
0
        private bool 禄逢冲破格(PaiPan pan)
        {
            // 禄存或化禄坐命,在三方四正中,有被地劫、地空冲破。

            if (pan.MingGong.Stars.Exists(s => s.Name == "禄存") ||
                pan.MingGong.Stars.Exists(s => "禄" == s.Hua))
            {
                BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "地劫"));
                Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "地空"));
                if (g1 != null && g2 != null)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#16
0
        private bool 禄马交驰格(PaiPan pan)
        {
            // 命宫或三方有禄存、天马或化禄、天马。
            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
            Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "禄存"));
            Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "天马"));
            Gong   g3  = arr.FirstOrDefault(g => g.Stars.Exists(s => "禄" == s.Hua));

            if (g1 != null && g2 != null)
            {
                return(true);
            }

            if (g3 != null && g2 != null)
            {
                return(true);
            }

            return(false);
        }
示例#17
0
文件: DaShisWords.cs 项目: snamper/ZW
        public static DaShi GetDaShi(BasicGong gong, DAL dal)
        {
            DaShi result = new DaShi();

            if (gong.Name == GongIndex.命宫)
            {
                string id = gong.ZhuXing[0].Id.ToString();

                result.MingZhongTeDian = dal.s24.Find(s => s.id == gong.ZhuXing[0].Id.ToString()).items[gong.SelfGong.Zhi - 1].text;

                if (gong.ZhuXing.Count == 2)
                {
                    result.MingZhongTeDian += "\n";
                    result.MingZhongTeDian += dal.s24.Find(s => s.id == gong.ZhuXing[1].Id.ToString()).items[gong.SelfGong.Zhi - 1].text;
                    id += ("#" + gong.ZhuXing[1].Id.ToString());
                }

                result.JianYi = dal.s25.Find(s => s.id == id).text;
            }
            else
            {
                var data = GetData(gong.Name, dal);
                if (gong.JiXiongZhiShu > 50)
                {
                    result.MingZhongTeDian = data.Find(d => d.id == gong.ZhuXing[0].Id.ToString()).dizhis[gong.SelfGong.Zhi - 1].contents[0].text;
                }
                else
                {
                    result.MingZhongTeDian = data.Find(d => d.id == gong.ZhuXing[0].Id.ToString()).dizhis[gong.SelfGong.Zhi - 1].contents[1].text;
                }

                result.JianYi = GetJianYi(gong.Name);
            }

            return(result);
        }
示例#18
0
        private bool 坐贵向贵格(PaiPan pan)
        {
            // 如坐命天魁且逢天钺来加会,或坐命天钺,且逢天魁来加会。

            BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

            if (pan.MingGong.Stars.Exists(s => s.Name == "天魁"))
            {
                if (sfsz.HuiGongs.Exists(g => g.Stars.Exists(s => s.Name == "天钺")))
                {
                    return(true);
                }
            }

            if (pan.MingGong.Stars.Exists(s => s.Name == "天钺"))
            {
                if (sfsz.HuiGongs.Exists(g => g.Stars.Exists(s => s.Name == "天魁")))
                {
                    return(true);
                }
            }

            return(false);
        }
示例#19
0
        private bool 廉贞文武格(PaiPan pan)
        {
            // 廉贞坐命,官禄宫为武曲来会,三方四正再会文昌或文曲。

            if (pan.MingGong.Stars.Exists(s => s.Name == "廉贞"))
            {
                var gong = pan.Gongs.First(g => g.Name == "事业宫");
                if (gong.Stars.Exists(s => s.Name == "武曲"))
                {
                    BasicGong sfsz = SanFangSiZheng(pan, GongIndex.命宫);

                    Gong[] arr = new Gong[] { sfsz.SelfGong, sfsz.DuiZhaoGong, sfsz.HuiGongs[0], sfsz.HuiGongs[1] };
                    Gong   g1  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "文昌"));
                    Gong   g2  = arr.FirstOrDefault(g => g.Stars.Exists(s => s.Name == "文曲"));

                    if (g1 != null || g2 != null)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
示例#20
0
        public int GetScore(BasicGong gong, GongIndex index)
        {
            float score = 0;

            #region 主星
            if (gong.ZhuXing.Count == 1)
            {
                var xing      = gong.ZhuXing[0];
                var xingScore = zhuXingScore[xing.Star.Name];
                var liandu    = xing.Star.LiangDu.HasValue ? (int)xing.Star.LiangDu : 1;
                if (gong.isJieXing)
                {
                    liandu -= 2;
                    if (liandu < -3)
                    {
                        liandu = -3;
                    }
                }
                score += xingScore[(int)index] * LiangDuWieght[liandu];
            }
            else
            {
                var xing1     = gong.ZhuXing[0];
                var xing2     = gong.ZhuXing[1];
                var xingScore = zhuXingScore.ContainsKey(xing1.Star.Name + xing2.Star.Name) ? zhuXingScore[xing1.Star.Name + xing2.Star.Name] : zhuXingScore[xing2.Star.Name + xing1.Star.Name];
                var liandu1   = xing1.Star.LiangDu.HasValue ? (int)xing1.Star.LiangDu : 1;
                if (gong.isJieXing)
                {
                    liandu1 -= 2;
                    if (liandu1 < -3)
                    {
                        liandu1 = -3;
                    }
                }
                var liandu2 = xing2.Star.LiangDu.HasValue ? (int)xing2.Star.LiangDu : 1;
                if (gong.isJieXing)
                {
                    liandu2 -= 2;
                    if (liandu2 < -3)
                    {
                        liandu2 = -3;
                    }
                }
                score += xingScore[(int)index] * (LiangDuWieght[liandu1] + LiangDuWieght[liandu2]) / 2;
            }
            #endregion

            #region  星
            var zhuJixing   = new List <Xing>();
            var otherJixing = new List <Xing>();
            foreach (var xing in gong.JiXing)
            {
                if (gong.SelfGong.Stars.Exists(s => s.Name == xing.Star.Name))
                {
                    zhuJixing.Add(xing);
                }
                else
                {
                    otherJixing.Add(xing);
                }
            }

            if (zhuJixing.Exists(x => x.Star.Name == "文昌") && zhuJixing.Exists(x => x.Star.Name == "文曲"))
            {
                zhuJixing.RemoveAll(x => x.Star.Name == "文昌" || x.Star.Name == "文曲");
                score += jiXingScore["文昌文曲"][0];
            }
            if (zhuJixing.Exists(x => x.Star.Name == "左辅") && zhuJixing.Exists(x => x.Star.Name == "右弼"))
            {
                zhuJixing.RemoveAll(x => x.Star.Name == "左辅" || x.Star.Name == "右弼");
                score += jiXingScore["左辅右弼"][0];
            }
            if (zhuJixing.Exists(x => x.Star.Name == "天魁") && zhuJixing.Exists(x => x.Star.Name == "天钺"))
            {
                zhuJixing.RemoveAll(x => x.Star.Name == "天魁" || x.Star.Name == "天钺");
                score += jiXingScore["天魁天钺"][0];
            }

            if (otherJixing.Exists(x => x.Star.Name == "文昌") && otherJixing.Exists(x => x.Star.Name == "文曲"))
            {
                otherJixing.RemoveAll(x => x.Star.Name == "文昌" || x.Star.Name == "文曲");
                score += jiXingScore["文昌文曲"][1];
            }
            if (otherJixing.Exists(x => x.Star.Name == "左辅") && otherJixing.Exists(x => x.Star.Name == "右弼"))
            {
                otherJixing.RemoveAll(x => x.Star.Name == "左辅" || x.Star.Name == "右弼");
                score += jiXingScore["左辅右弼"][1];
            }
            if (otherJixing.Exists(x => x.Star.Name == "天魁") && otherJixing.Exists(x => x.Star.Name == "天钺"))
            {
                otherJixing.RemoveAll(x => x.Star.Name == "天魁" || x.Star.Name == "天钺");
                score += jiXingScore["天魁天钺"][1];
            }

            foreach (var xing in zhuJixing)
            {
                score += jiXingScore[xing.Star.Name][0];
            }
            foreach (var xing in otherJixing)
            {
                score += jiXingScore[xing.Star.Name][1];
            }

            #endregion

            #region 凶星
            var zhuXiongxing   = new List <Xing>();
            var otherXiongxing = new List <Xing>();
            foreach (var xing in gong.XiongXing)
            {
                if (gong.SelfGong.Stars.Exists(s => s.Name == xing.Star.Name))
                {
                    zhuXiongxing.Add(xing);
                }
                else
                {
                    otherXiongxing.Add(xing);
                }
            }

            if (zhuXiongxing.Exists(x => x.Star.Name == "火星") && zhuXiongxing.Exists(x => x.Star.Name == "铃星"))
            {
                zhuXiongxing.RemoveAll(x => x.Star.Name == "火星" || x.Star.Name == "铃星");
                score += xiongXingScore["火星铃星"][0];
            }
            if (zhuXiongxing.Exists(x => x.Star.Name == "擎羊") && zhuXiongxing.Exists(x => x.Star.Name == "陀罗"))
            {
                zhuXiongxing.RemoveAll(x => x.Star.Name == "擎羊" || x.Star.Name == "陀罗");
                score += xiongXingScore["擎羊陀罗"][0];
            }
            if (zhuXiongxing.Exists(x => x.Star.Name == "地空") && zhuXiongxing.Exists(x => x.Star.Name == "地劫"))
            {
                zhuXiongxing.RemoveAll(x => x.Star.Name == "地空" || x.Star.Name == "地劫");
                score += xiongXingScore["地空地劫"][0];
            }

            if (otherXiongxing.Exists(x => x.Star.Name == "火星") && otherXiongxing.Exists(x => x.Star.Name == "铃星"))
            {
                otherXiongxing.RemoveAll(x => x.Star.Name == "火星" || x.Star.Name == "铃星");
                score += xiongXingScore["火星铃星"][1];
            }
            if (otherXiongxing.Exists(x => x.Star.Name == "擎羊") && otherXiongxing.Exists(x => x.Star.Name == "陀罗"))
            {
                otherXiongxing.RemoveAll(x => x.Star.Name == "擎羊" || x.Star.Name == "陀罗");
                score += xiongXingScore["擎羊陀罗"][1];
            }
            if (otherXiongxing.Exists(x => x.Star.Name == "地空") && otherXiongxing.Exists(x => x.Star.Name == "地劫"))
            {
                otherXiongxing.RemoveAll(x => x.Star.Name == "地空" || x.Star.Name == "地劫");
                score += xiongXingScore["地空地劫"][1];
            }

            foreach (var xing in zhuXiongxing)
            {
                score += xiongXingScore[xing.Star.Name][0];
            }
            foreach (var xing in otherXiongxing)
            {
                score += xiongXingScore[xing.Star.Name][1];
            }
            #endregion

            #region 特殊情况

            if (gong.XiongXing.Exists(x => x.Star.Name == "火星"))
            {
                if (gong.ZhuXing.Exists(x => x.Star.Name == "七杀"))
                {
                    score += 40;
                }
                if (gong.ZhuXing.Exists(x => x.Star.Name == "贪狼"))
                {
                    score += 80;
                }
                if (gong.JiXing.Exists(x => x.Star.Name == "武曲"))
                {
                    score += 60;
                }
            }

            if (gong.XiongXing.Exists(x => x.Star.Name == "擎羊") && index == GongIndex.疾厄宫)
            {
                score += 80;
            }
            #endregion

            if (score < 40)
            {
                score = 40 + score % 4;
            }
            else if (score >= 200)
            {
                score = 100;
            }
            else
            {
                score = (score - 40) * 60 / 160 + 40;
            }
            return((int)score);
        }