開獎計算---五星直選復式


開獎結果為5位數:

 萬、千、百、十、個

五星購買的時候必須至少每個位選擇一個數進行組合,若每個位數對上計算中獎;那么我們必須先定義好復式的格式,如下:

萬千百十個

開獎結果:1,2,3,4,5

對數據進行組合:

BetDetail的BetContent屬性為投注內容,

BetContent="1,2,3,4,5";

 1  /// <summary>
 2         /// 根據投注內容得到所有的組合情況
 3         /// </summary>
 4         /// <returns></returns>
 5         private List<string> GetAllBets(BasicModel.LotteryBasic.BetDetail item)
 6         {
 7             if (null == item || string.IsNullOrEmpty(item.BetContent))
 8                 return null;
 9             else
10             {
11                 var bets = item.BetContent.Split(',');
12                 if (bets.Count() != 5)
13                 {
14                     return null;
15                 }
16                 else
17                 {
18                     var list = new List<string>();
19                     var wan = bets[0].Select(m => Convert.ToInt32(m.ToString())).ToList();
20                     var qian = bets[1].Select(m => Convert.ToInt32(m.ToString())).ToList();
21                     var bai = bets[2].Select(m => Convert.ToInt32(m.ToString())).ToList();
22                     var shi = bets[3].Select(m => Convert.ToInt32(m.ToString())).ToList();
23                     var ge = bets[4].Select(m => Convert.ToInt32(m.ToString())).ToList();
24                     list = (from w in wan
25                             from q in qian
26                             from b in bai
27                             from s in shi
28                             from g in ge
29                             select string.Format("{0}{1}{2}{3}{4}", w, q, b, s, g)).ToList();
30                     return list;
31                 }
32             }
33         }
View Code

執行GetAllBets獲取組合的結果,然后對結果進行比對,若與開獎結果的每個位置比對成功,那么久算中獎:

1  var list = GetAllBets(item);
2                 var result = list.Find(m => m == openResult.Replace(",", ""));
3                 if (result != null)
4                 {
5                     item.IsMatch = true;
6                     decimal stepAmt = 0;
7                     item.WinMoney = TotalWinMoney(item, GetBaseAmt(item, ref stepAmt), stepAmt, 1);
8                 }
View Code

若有不明白的請私信我或加群:542620409一起討論

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM