Exemple #1
0
        private static string GetJianYi(GongIndex index)
        {
            switch (index)
            {
            case GongIndex.兄弟宫:
                return("亲情无价,能成为兄弟姊妹需要无限的缘分。所以,当兄弟姊妹遇到困难时,如果您是有能力,请伸出援手吧。");

            case GongIndex.夫妻宫:
                return("夫妻生活是门学问,需要夫妻双方努力去维系,和谐的夫妻生活关键是知进退,多关心谅解对方,迎合伴侣的感情态度可以有效加强婚姻美满度。婚姻感情需要需要清楚自身的爱情态度,找出自己在感情方面的不足之处,选择真正适合自己的对象,可以查看自身的婚姻感情分析。想要知道伴侣的感情态度就需要结合伴侣的命理信息来分析");

            case GongIndex.子女宫:
                return("“养儿一百岁,长忧九十九。”关注自己子女成长是每个父母的责任,但您的教育方式是否真适合自己子女呢?建议可以从子女性格方面下手,针对他们的性格进行教育,这样可以事半功倍。");

            case GongIndex.财帛宫:
                return("财富的好坏虽然命中有定数,但缺乏行动努力一切都变得不现实。但命中财运不好怎么办?就需要看流年的运程,运势不好的年份需要走得慢一点,稳中求胜;运势好的年运可以加快步伐,挑战各种机遇。至于无法留下贮蓄怎么办?自己没法留可以交给其它人帮忙保管,像爸妈、婚姻伴侣都可以,又或者把生活必须外的钱在银行设个定期存款,减低流动性。");

            case GongIndex.疾厄宫:
                return("需要关注自身健康情况,注意保养容易患病的部分,每年的身体检查肯定是必不可少的。预防胜于治疗,注意好自己的作息时间和饮食习惯,有时间再做适量的运动,保持健康其实很容易。");

            case GongIndex.仆役宫:
                return("生活中无法避免认识朋友、同事、上司,想要和他们和谐相处应该针对他们的性格下手,了解他们的性格特点,投其所好,这有助于人际交往发展。");

            case GongIndex.事业宫:
                return("事业成就高低和努力是密不可分,但并不意味着您努力了就可以有收获,关键是努力的方向需要正确的。所以您需要选择适合自己的事业和方向发展,这可以令您更容易发挥自身能力,获得成功。");

            case GongIndex.父母宫:
                return("“养儿一百岁,长忧九十九。”同样的道理,没有父母是不关系自己的子女的,对于父母您需要给予更多的关爱。年老容易滋生孤独感觉,陪父母聚餐聊天是个不错的做法,当然离乡发展的朋友可以电话关心一下,给爸妈报个平安。您也可以帮父母建档测算一下,看看每年有哪些方面是需要特别注意的,避免引发严重的问题。");

            default:
                return(string.Empty);
            }
        }
Exemple #2
0
        private BasicGong SanFangSiZheng(PaiPan pan, GongIndex index)
        {
            //三方四正
            var model = new BasicGong();

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

            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);
        }
Exemple #3
0
        private static ziwei_data_s31 GetData(GongIndex index, DAL dal)
        {
            switch (index)
            {
            case GongIndex.兄弟宫:
                return(dal.s31);

            case GongIndex.夫妻宫:
                return(dal.s32);

            case GongIndex.子女宫:
                return(dal.s33);

            case GongIndex.财帛宫:
                return(dal.s34);

            case GongIndex.疾厄宫:
                return(dal.s35);

            case GongIndex.迁移宫:
                return(dal.s36);

            case GongIndex.仆役宫:
                return(dal.s37);

            case GongIndex.事业宫:
                return(dal.s38);

            case GongIndex.田宅宫:
                return(dal.s39);

            case GongIndex.福德宫:
                return(dal.s40);

            case GongIndex.父母宫:
                return(dal.s41);

            default:
                return(null);
            }
        }
Exemple #4
0
        public T GetResult <T>(PaiPan pan, GongIndex gong_idx, int index_of_s2) where T : BasicGong, new()
        {
            T model = new T();

            #region 宫位信息初始化

            //三方四正
            model.SelfGong = pan.Gongs.First(g => g.Name == gong_idx.ToString());

            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]);


            //主星
            var zhuxing = model.SelfGong.Stars.Where(s => dal.Dic_ZhuXing.ContainsKey(s.Name)).ToList();
            if (zhuxing.Count == 0)
            {
                model.isJieXing = true;
                zhuxing         = model.DuiZhaoGong.Stars.Where(s => dal.Dic_ZhuXing.ContainsKey(s.Name)).ToList(); //借星
            }

            foreach (var item in zhuxing)
            {
                model.ZhuXing.Add(new Xing(item, dal.Dic_ZhuXing[item.Name].id, Position.坐宫));
            }


            //吉星
            foreach (var item in model.SelfGong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList())
            {
                model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.坐宫));
            }

            foreach (var item in model.DuiZhaoGong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList())
            {
                model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.对照));
            }

            foreach (var gong in model.HuiGongs)
            {
                foreach (var item in gong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList())
                {
                    model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.加会));
                }
            }


            //凶星
            foreach (var item in model.SelfGong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList())
            {
                model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.坐宫));
            }

            foreach (var item in model.DuiZhaoGong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList())
            {
                model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.对照));
            }

            foreach (var gong in model.HuiGongs)
            {
                foreach (var item in gong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList())
                {
                    model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.加会));
                }
            }

            #endregion

            //宫位
            model.GongWei = string.Format("【{0}在{1}】", gong_idx.ToString(), model.SelfGong.ZhiString) + dal.s11[model.SelfGong.Zhi - 1].items[gong_idx.GetHashCode()];


            //主星四化
            foreach (var item in model.ZhuXing.Where(x => !string.IsNullOrEmpty(x.Star.Hua)))
            {
                switch (item.Star.Hua)
                {
                case "禄":
                    item.HuaContent = dal.s4.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "权":
                    item.HuaContent = dal.s5.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "科":
                    item.HuaContent = dal.s6.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "忌":
                    item.HuaContent = dal.s7.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;
                }
            }

            foreach (var item in model.JiXing.Where(x => !string.IsNullOrEmpty(x.Star.Hua)))
            {
                switch (item.Star.Hua)
                {
                case "禄":
                    item.HuaContent = dal.s4.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "权":
                    item.HuaContent = dal.s5.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "科":
                    item.HuaContent = dal.s6.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;

                case "忌":
                    item.HuaContent = dal.s7.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()];
                    break;
                }
            }


            //四化(不只主星)
            foreach (var item in model.DuiZhaoGong.Stars.Where(x => !string.IsNullOrEmpty(x.Hua)))
            {
                model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.对照));
            }

            foreach (var item in model.SelfGong.Stars.Where(x => !string.IsNullOrEmpty(x.Hua)))
            {
                model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.坐宫));
            }

            foreach (var item in model.HuiGongs[0].Stars.Where(x => !string.IsNullOrEmpty(x.Hua)))
            {
                model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.加会));
            }

            foreach (var item in model.HuiGongs[1].Stars.Where(x => !string.IsNullOrEmpty(x.Hua)))
            {
                model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.加会));
            }


            //福德则直接返回
            if (gong_idx == GongIndex.福德宫)
            {
                return(model);
            }


            //主星
            foreach (var xing in model.ZhuXing)
            {
                xing.Content = dal.s2[xing.Id].items[index_of_s2];
            }

            //吉星
            foreach (var xing in model.JiXing)
            {
                xing.Content = dal.s2[xing.Id].items[index_of_s2];
            }

            //凶星
            foreach (var xing in model.XiongXing)
            {
                xing.Content = dal.s2[xing.Id].items[index_of_s2];
            }


            GetJiXiong <T>(model);

            model.DaShi = DaShisWords.GetDaShi(model, dal);

            return(model);
        }
Exemple #5
0
        public IList <LiuNianInfo> GetLiuNianInfo(string[] stars, GongIndex index)
        {
            var list = new List <LiuNianInfo>();

            if (stars == null || stars.Length == 0)
            {
                return(list);
            }

            int id = 0;

            switch (index)
            {
            case GongIndex.命宫: id = 0; break;

            case GongIndex.夫妻宫: id = 1; break;

            case GongIndex.事业宫: id = 2; break;

            case GongIndex.财帛宫: id = 3; break;

            case GongIndex.迁移宫: id = 4; break;

            case GongIndex.田宅宫: id = 5; break;

            case GongIndex.疾厄宫: id = 6; break;

            case GongIndex.仆役宫: id = 7; break;

            case GongIndex.父母宫: id = 8; break;

            case GongIndex.子女宫: id = 9; break;

            default: return(list);
            }

            var    container = dal.s43.Find(d => d.id == id);
            string xingid    = null;

            if (stars.Length == 1)
            {
                xingid = dal.Dic_ZhuXing[stars[0]].id.ToString();
            }
            else if (stars.Length == 2)
            {
                xingid = string.Format("{0}#{1}", dal.Dic_ZhuXing[stars[0]].id, dal.Dic_ZhuXing[stars[1]].id);
            }
            else
            {
                return(list);
            }

            var raw = container.starDatas.Where(d => d.id == xingid);

            foreach (var item in raw)
            {
                var info = new LiuNianInfo()
                {
                    id    = item.id,
                    name  = item.name,
                    title = item.title,
                    text  = item.text
                };
                list.Add(info);
            }

            return(list);
        }
Exemple #6
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);
        }