コード例 #1
0
ファイル: UmatanOdds.cs プロジェクト: yslius/GetUmatanOdds
        void writeHeadData(ClassCSV cCSV)
        {
            long rowTarget = 1;

            cCSV.setData(rowTarget, 1, "目1");
            cCSV.setData(rowTarget, 2, "目2");
            cCSV.setData(rowTarget, 3, "馬単オッズ");
            cCSV.setData(rowTarget, 4, "人気1");
            cCSV.setData(rowTarget, 5, "人気2");
            cCSV.setData(rowTarget, 6, "馬単票数");
            cCSV.setData(rowTarget, 7, "馬単裏");
            cCSV.setData(rowTarget, 8, "馬単合成");
            cCSV.setData(rowTarget, 9, "3連単1・2着軸総流し");
        }
コード例 #2
0
        public void CreateCompositeOdds(ClassCSV cCSV, List <clsUmatanOdds> listUmatanOddsH1,
                                        List <clsRaceUma> listUmatanOddsO1, List <clsUmatanOdds> listUmatanOdds,
                                        List <clsOddsSanrentan> listOddsSanrentan)
        {
            int  cnt         = 0;
            bool isExistHyou = true;

            // 人気順を入れる
            foreach (clsRaceUma UmatanOddsO1 in listUmatanOddsO1)
            {
                cnt = 0;
                foreach (clsUmatanOdds UmatanOdds in listUmatanOdds)
                {
                    if (UmatanOdds.Umaban1 == UmatanOddsO1.Umaban)
                    {
                        listUmatanOdds[cnt].Ninki1 = UmatanOddsO1.Ninki;
                    }
                    if (UmatanOdds.Umaban2 == UmatanOddsO1.Umaban)
                    {
                        listUmatanOdds[cnt].Ninki2 = UmatanOddsO1.Ninki;
                    }
                    cnt++;
                }
            }

            // 票数1
            if (listUmatanOddsH1.Count == 0)
            {
                isExistHyou = false;
            }
            foreach (clsUmatanOdds UmatanOddsH1 in listUmatanOddsH1)
            {
                cnt = 0;
                foreach (clsUmatanOdds UmatanOdds in listUmatanOdds)
                {
                    if (UmatanOdds.Kumi == UmatanOddsH1.Kumi)
                    {
                        listUmatanOdds[cnt].Hyou = UmatanOddsH1.Hyou;
                        break;
                    }
                    cnt++;
                }
            }

            // 馬単裏
            for (int i = 0; i < listUmatanOdds.Count; i++)
            {
                foreach (clsUmatanOdds UmatanOdds in listUmatanOdds)
                {
                    if (listUmatanOdds[i].Umaban1 == UmatanOdds.Umaban2 &&
                        listUmatanOdds[i].Umaban2 == UmatanOdds.Umaban1)
                    {
                        listUmatanOdds[i].RevOdds = UmatanOdds.Odds;
                        break;
                    }
                }
            }

            // 馬単合成
            for (int i = 0; i < listUmatanOdds.Count; i++)
            {
                List <double> listOddsGousei = new List <double>();
                listOddsGousei.Add(listUmatanOdds[i].Odds);
                listOddsGousei.Add(listUmatanOdds[i].RevOdds);
                double denom = 0;
                for (int j = 0; j < listOddsGousei.Count; j++)
                {
                    denom += 1 / listOddsGousei[j];
                }
                if (denom > 0)
                {
                    listUmatanOdds[i].SyntheticOdds1 = 1 / denom;
                }
            }

            // 3連単オッズ
            if (_form1.checkBox1.Checked)
            {
                for (int i = 0; i < listUmatanOdds.Count; i++)
                {
                    List <double> listOddsGousei = new List <double>();
                    for (int j = 0; j < listOddsSanrentan.Count; j++)
                    {
                        if (listUmatanOdds[i].Umaban1 == listOddsSanrentan[j].Umaban1 &&
                            listUmatanOdds[i].Umaban2 == listOddsSanrentan[j].Umaban2)
                        {
                            listOddsGousei.Add(listOddsSanrentan[j].OddsSanrentan);
                        }
                    }
                    double denom = 0;
                    for (int j = 0; j < listOddsGousei.Count; j++)
                    {
                        if (listOddsGousei[j] > 0)
                        {
                            denom += 1 / listOddsGousei[j];
                        }
                    }
                    if (denom > 0)
                    {
                        listUmatanOdds[i].SyntheticOdds2 = 1 / denom;
                    }
                }
            }

            //ソートする
            listUmatanOdds.Sort((a, b) => b.Umaban1 - a.Umaban1);
            listUmatanOdds.Sort((a, b) => b.Umaban2 - a.Umaban2);
            listUmatanOdds.Sort((a, b) => a.OddsInt - b.OddsInt);

            //CSVに書き込み
            long rowWrite = 2;

            foreach (clsUmatanOdds UmatanOdds in listUmatanOdds)
            {
                string strOdds = string.Format("{0:0.0}", UmatanOdds.Odds);
                if (strOdds.Substring(strOdds.Length - 1, 1) == "0")
                {
                    strOdds = ((int)UmatanOdds.Odds).ToString();
                }
                string strRevOdds = string.Format("{0:0.0}", UmatanOdds.RevOdds);
                if (strRevOdds.Substring(strRevOdds.Length - 1, 1) == "0")
                {
                    strRevOdds = ((int)UmatanOdds.RevOdds).ToString();
                }
                string strSyntheticOdds1 = string.Format("{0:0.0}", UmatanOdds.SyntheticOdds1);
                if (strSyntheticOdds1.Substring(strSyntheticOdds1.Length - 1, 1) == "0")
                {
                    strSyntheticOdds1 = Convert.ToInt32(UmatanOdds.SyntheticOdds1).ToString();
                }

                cCSV.setData(rowWrite, 1, UmatanOdds.Umaban1.ToString());
                cCSV.setData(rowWrite, 2, UmatanOdds.Umaban2.ToString());
                cCSV.setData(rowWrite, 3, strOdds);
                cCSV.setData(rowWrite, 4, UmatanOdds.Ninki1.ToString());
                cCSV.setData(rowWrite, 5, UmatanOdds.Ninki2.ToString());
                if (isExistHyou)
                {
                    cCSV.setData(rowWrite, 6, UmatanOdds.Hyou.ToString());
                }
                else
                {
                    cCSV.setData(rowWrite, 6, "");
                }
                cCSV.setData(rowWrite, 7, strRevOdds);
                cCSV.setData(rowWrite, 8, strSyntheticOdds1);
                if (_form1.checkBox1.Checked)
                {
                    string strSyntheticOdds2 = string.Format("{0:0.0}", UmatanOdds.SyntheticOdds2);
                    if (strSyntheticOdds2.Substring(strSyntheticOdds2.Length - 1, 1) == "0")
                    {
                        strSyntheticOdds2 = Convert.ToInt32(UmatanOdds.SyntheticOdds2).ToString();
                    }
                    cCSV.setData(rowWrite, 9, strSyntheticOdds2);
                }

                rowWrite++;
            }
        }