Exemple #1
0
 void ServerHundredConversion()
 {                                                                  //根據根據伺服器給的資料轉換近百局與開獎記錄
     RecentHundredbyte        = new byte[RecentHundredUnit.Length]; //初始化陣列
     LotteryRecord.RecordData = new List <SicBoRecordData>();       //初始化開獎記錄資料
     for (int i = 0; i < RecentHundredbyte.Length; i++)
     {
         RecentHundredbyte[i] = 0;   //byte = 0
     }
     for (int i = 0; i < HundredData.Count; i++)
     {
         if (HundredData[i].Dice1 != 0 && HundredData[i] != null)
         {
             if (HundredData[i].Dice1 == HundredData[i].Dice2 && HundredData[i].Dice1 == HundredData[i].Dice3 && HundredData[i].Dice1 == HundredData[i].Dice4)
             {                                                      //四豹  1111 = 111 四枚 圍骰
                 RecentHundredbyte[HundredData[i].Dice1 + 1]++;     //圍骰 1~6 + 1 = 2 ~ 7
                 RecentHundredbyte[8]++;                            //任意圍骰
                 RecentHundredbyte[HundredData[i].Dice1 + 8]++;     //四枚 1~6 + 8 = 9 ~ 14
                 RecentHundredbyte[15]++;                           //任意四枚
                 RecentHundredbyte[HundredData[i].Dice1 + 29] += 4; //Number 1~6 + 29 = 30 ~ 35
                 if (HundredData[i].Dice1 != 1 && HundredData[i].Dice1 != 6)
                 {
                     RecentHundredbyte[12 + HundredData[i].Dice1 * 3]++; //Total 12 + Dice*3 = 18 21 24 27
                 }
                 //開獎記錄資料
                 SicBoRecordData tmpData = new SicBoRecordData();
                 tmpData.RecordDice[0] = HundredData[i].Dice1; //骰子1
                 tmpData.RecordDice[1] = HundredData[i].Dice2; //骰子2
                 tmpData.RecordDice[2] = HundredData[i].Dice3; //骰子3
                 tmpData.RecordDice[3] = HundredData[i].Dice4; //骰子4
                 tmpData.RecordPoint   = 0;                    //骰子總和 - 四枚不用顯示
                 tmpData.RecordType    = 4;                    //開獎類型 - 四枚
                 LotteryRecord.RecordData.Add(tmpData);        //將資料加入List
             }
             else if (HundredData[i].Dice1 == HundredData[i].Dice2 && HundredData[i].Dice1 == HundredData[i].Dice3 && HundredData[i].Dice1 != HundredData[i].Dice4 && HundredData[i].Dice4 != 0)
             {                                                      //破骰 1112 = 111 & 112
                 RecentHundredbyte[HundredData[i].Dice1 + 1]++;     //圍骰 1~6 + 1 = 2 ~ 7
                 RecentHundredbyte[8]++;                            //任意圍骰
                 RecentHundredbyte[HundredData[i].Dice1 + 29] += 3; //Number 1~6 + 29 = 30 ~ 35
                 RecentHundredbyte[HundredData[i].Dice4 + 29] += 1; //Number 1~6 + 29 = 30 ~ 35
                 byte tmpTotal = (byte)(HundredData[i].Dice1 + HundredData[i].Dice2 + HundredData[i].Dice3);
                 if (tmpTotal >= 4 && tmpTotal <= 17)               //Total 1
                 {
                     RecentHundredbyte[12 + tmpTotal]++;
                 }
                 tmpTotal = (byte)(HundredData[i].Dice1 + HundredData[i].Dice2 + HundredData[i].Dice4);
                 if (tmpTotal >= 4 && tmpTotal <= 17)    //Total 2
                 {
                     RecentHundredbyte[12 + tmpTotal]++;
                 }
                 if (tmpTotal >= 4 && tmpTotal <= 10)    //小
                 {
                     RecentHundredbyte[0]++;
                 }
                 else if (tmpTotal >= 11 && tmpTotal <= 17)  //大
                 {
                     RecentHundredbyte[1]++;
                 }
                 //開獎記錄資料 破骰時 先放 111
                 SicBoRecordData tmpData = new SicBoRecordData();
                 tmpData.RecordDice[0] = HundredData[i].Dice1; //骰子1
                 tmpData.RecordDice[1] = HundredData[i].Dice2; //骰子2
                 tmpData.RecordDice[2] = HundredData[i].Dice3; //骰子3
                 tmpData.RecordDice[3] = HundredData[i].Dice4; //骰子4
                 tmpData.RecordPoint   = 0;                    //骰子總和 圍骰不用顯示
                 tmpData.RecordType    = 7;                    //開獎類型 - 破骰(圍骰)
                 LotteryRecord.RecordData.Add(tmpData);        //將資料加入List
                 //再放 112
                 tmpData = new SicBoRecordData();
                 tmpData.RecordDice[0] = HundredData[i].Dice1;                                                       //骰子1
                 tmpData.RecordDice[1] = HundredData[i].Dice2;                                                       //骰子2
                 tmpData.RecordDice[2] = HundredData[i].Dice3;                                                       //骰子3
                 tmpData.RecordDice[3] = HundredData[i].Dice4;                                                       //骰子4
                 tmpData.RecordPoint   = (byte)(HundredData[i].Dice1 + HundredData[i].Dice2 + HundredData[i].Dice4); //骰子總和
                 if (tmpData.RecordPoint >= 4 && tmpData.RecordPoint <= 10)
                 {
                     tmpData.RecordType = 5; //開獎類型 - 破骰(小)
                 }
                 else if (tmpData.RecordPoint >= 11 && tmpData.RecordPoint <= 17)
                 {
                     tmpData.RecordType = 6;            //開獎類型 - 破骰(大)
                 }
                 LotteryRecord.RecordData.Add(tmpData); //將資料加入List
             }
             else if (HundredData[i].Dice1 == HundredData[i].Dice2 && HundredData[i].Dice1 == HundredData[i].Dice3 && HundredData[i].Dice4 == 0)
             {                                                      //普豹
                 RecentHundredbyte[HundredData[i].Dice1 + 1]++;     //圍骰 1~6 + 1 = 2 ~ 7
                 RecentHundredbyte[8]++;                            //任意圍骰
                 RecentHundredbyte[HundredData[i].Dice1 + 29] += 3; //Number 1~6 + 29 = 30 ~ 35
                 if (HundredData[i].Dice1 != 1 && HundredData[i].Dice1 != 6)
                 {
                     RecentHundredbyte[12 + HundredData[i].Dice1 * 3]++; //Total 12 + Dice*3 = 18 21 24 27
                 }
                 //開獎記錄資料
                 SicBoRecordData tmpData = new SicBoRecordData();
                 tmpData.RecordDice[0] = HundredData[i].Dice1; //骰子1
                 tmpData.RecordDice[1] = HundredData[i].Dice2; //骰子2
                 tmpData.RecordDice[2] = HundredData[i].Dice3; //骰子3
                 tmpData.RecordDice[3] = HundredData[i].Dice4; //骰子4
                 tmpData.RecordPoint   = 0;                    //骰子總和 圍骰不用顯示
                 tmpData.RecordType    = 3;                    //開獎類型 - 圍骰
                 LotteryRecord.RecordData.Add(tmpData);        //將資料加入List
             }
             else
             {                                                      //其他
                 RecentHundredbyte[HundredData[i].Dice1 + 29] += 3; //Number 1~6 + 29 = 30 ~ 35
                 RecentHundredbyte[HundredData[i].Dice2 + 29] += 3; //Number 1~6 + 29 = 30 ~ 35
                 RecentHundredbyte[HundredData[i].Dice3 + 29] += 3; //Number 1~6 + 29 = 30 ~ 35
                 byte tmpTotal = (byte)(HundredData[i].Dice1 + HundredData[i].Dice2 + HundredData[i].Dice3);
                 if (tmpTotal >= 4 && tmpTotal <= 17)               //Total
                 {
                     RecentHundredbyte[12 + tmpTotal]++;
                 }
                 if (tmpTotal >= 4 && tmpTotal <= 10)    //小
                 {
                     RecentHundredbyte[0]++;
                 }
                 else if (tmpTotal >= 11 && tmpTotal <= 17)  //大
                 {
                     RecentHundredbyte[1]++;
                 }
                 //開獎記錄資料
                 SicBoRecordData tmpData = new SicBoRecordData();
                 tmpData.RecordDice[0] = HundredData[i].Dice1;                                                       //骰子1
                 tmpData.RecordDice[1] = HundredData[i].Dice2;                                                       //骰子2
                 tmpData.RecordDice[2] = HundredData[i].Dice3;                                                       //骰子3
                 tmpData.RecordDice[3] = HundredData[i].Dice4;                                                       //骰子4
                 tmpData.RecordPoint   = (byte)(HundredData[i].Dice1 + HundredData[i].Dice2 + HundredData[i].Dice3); //骰子總和
                 if (tmpData.RecordPoint >= 4 && tmpData.RecordPoint <= 10)
                 {
                     tmpData.RecordType = 1; //開獎類型 - 小
                 }
                 else if (tmpData.RecordPoint >= 11 && tmpData.RecordPoint <= 17)
                 {
                     tmpData.RecordType = 2;            //開獎類型 - 大
                 }
                 LotteryRecord.RecordData.Add(tmpData); //將資料加入List
             }
         }
     }
     //計算最大頁數
     LotteryRecord.InitMaxPage();
 }
    public void UpdateLotteryRecord(byte dice1, byte dice2, byte dice3, byte dice4)
    {
        if (RecordData.Count == 100)    //如果資料筆數 = 100 先刪除最後一筆
        {
            RecordData.RemoveAt(99);
        }
        else if (RecordData.Count > 100) //如果資料筆數 > 100
        {                                //且最後兩筆 都為破骰
            if (RecordData[RecordData.Count - 1].RecordType > 4 && RecordData[RecordData.Count - 2].RecordType > 4)
            {                            //刪除最後兩筆
                RecordData.RemoveAt(RecordData.Count - 1);
                RecordData.RemoveAt(RecordData.Count - 2);
            }
            else //否則只刪除一筆
            {
                RecordData.RemoveAt(RecordData.Count - 1);
            }
        }
        //加入新資料
        SicBoRecordData tmpData = new SicBoRecordData();

        if (dice1 == dice2 && dice1 == dice3 && dice1 == dice4)
        {                                  //四豹  1111 = 111 四枚 圍骰
            tmpData.RecordDice[0] = dice1; //骰子1
            tmpData.RecordDice[1] = dice2; //骰子2
            tmpData.RecordDice[2] = dice3; //骰子3
            tmpData.RecordDice[3] = dice4; //骰子4
            tmpData.RecordPoint   = 0;     //骰子總和 - 四枚不用顯示
            tmpData.RecordType    = 4;     //開獎類型 - 四枚
            RecordData.Insert(0, tmpData); //加入資料
        }
        else if (dice1 == dice2 && dice1 == dice3 && dice1 != dice4 && dice4 != 0)
        {                                                          //破骰 1112 = 111 & 112
            //先放 112
            tmpData.RecordDice[0] = dice1;                         //骰子1
            tmpData.RecordDice[1] = dice2;                         //骰子2
            tmpData.RecordDice[2] = dice3;                         //骰子3
            tmpData.RecordDice[3] = dice4;                         //骰子4
            tmpData.RecordPoint   = (byte)(dice1 + dice2 + dice4); //骰子總和
            if (tmpData.RecordPoint >= 4 && tmpData.RecordPoint <= 10)
            {
                tmpData.RecordType = 5; //開獎類型 - 破骰(小)
            }
            else if (tmpData.RecordPoint >= 11 && tmpData.RecordPoint <= 17)
            {
                tmpData.RecordType = 6;    //開獎類型 - 破骰(大)
            }
            RecordData.Insert(0, tmpData); //加入資料
            //再放 111
            tmpData = new SicBoRecordData();
            tmpData.RecordDice[0] = dice1; //骰子1
            tmpData.RecordDice[1] = dice2; //骰子2
            tmpData.RecordDice[2] = dice3; //骰子3
            tmpData.RecordDice[3] = dice4; //骰子4
            tmpData.RecordPoint   = 0;     //骰子總和 圍骰不用顯示
            tmpData.RecordType    = 7;     //開獎類型 - 破骰(圍骰)
            RecordData.Insert(0, tmpData); //加入資料
        }
        else if (dice1 == dice2 && dice1 == dice3 && dice4 == 0)
        {                                  //普豹
            tmpData.RecordDice[0] = dice1; //骰子1
            tmpData.RecordDice[1] = dice2; //骰子2
            tmpData.RecordDice[2] = dice3; //骰子3
            tmpData.RecordDice[3] = dice4; //骰子4
            tmpData.RecordPoint   = 0;     //骰子總和 圍骰不用顯示
            tmpData.RecordType    = 3;     //開獎類型 - 圍骰
            RecordData.Insert(0, tmpData); //加入資料
        }
        else
        {                                                          //其他
            tmpData.RecordDice[0] = dice1;                         //骰子1
            tmpData.RecordDice[1] = dice2;                         //骰子2
            tmpData.RecordDice[2] = dice3;                         //骰子3
            tmpData.RecordDice[3] = dice4;                         //骰子4
            tmpData.RecordPoint   = (byte)(dice1 + dice2 + dice3); //骰子總和
            if (tmpData.RecordPoint >= 4 && tmpData.RecordPoint <= 10)
            {
                tmpData.RecordType = 1; //開獎類型 - 小
            }
            else if (tmpData.RecordPoint >= 11 && tmpData.RecordPoint <= 17)
            {
                tmpData.RecordType = 2;    //開獎類型 - 大
            }
            RecordData.Insert(0, tmpData); //加入資料
        }
        //計算最大頁數
        MaxPage = (RecordData.Count % 10 == 0) ? (byte)(RecordData.Count / 10) : (byte)(RecordData.Count / 10 + 1);
    }