您的位置:首頁>遊戲>正文

老鐵,你今天贏錢了嗎?大資料分析博☆禁☆彩遊戲的服務端演算法

背景是某天突然收到朋友的資訊, 說最近迷上了某款博彩遊戲, 類似於大街小巷的水果機, 說我是IT人士, 趕緊幫忙寫個外掛大家賺點錢。

一開始我嗤之以鼻, 我認為這種看臉的概率問題沒必要浪費時間, 但朋友說和一般的水果機不同, 死纏爛打非讓我研究下, 於是只能勉強答應了。

其中8個選項就是我們下注的8個項,

總額:表示該遊戲房間內例如有100個玩家, 這100個玩家所有押注選項1的總額是多少,

倍率:例如我壓了100分選項3, 那麼開獎開的是選項3, 我就得到8000分。

總所周知莊家(遊戲公司)肯定是穩賺不虧的,

所以我們只能從別的玩家手中賺錢, 下面開始截取封包並記錄資料, 冒泡遞減排序:

選項後面括弧內的數位是倍率, 括弧後面帶小數的數位是該選項押注總額, 單位是萬。

經過幾天24小時不間斷的抓取, 我們有了一定數量的樣本, 寫個簡單的統計演算法開始分析:

果然不出所料, 莊家為了保障利益, 儘量會選擇總額低的開, 實際上其他的可以不用看, 就看乘以倍率之後的名次關於開獎的概率分佈就行了,

於是我們再自動控制鍵盤滑鼠, 同時抓資料, 因為下注總額是即時的, 在開獎前一秒按照我們統計的概率去下注就行了,

假如這次倍率最低為4倍 , 那麼我們可以押概率最高的4個, 中獎率高達73%,

如果最低為6倍, 那麼我們可以押概率最高的6個, 中獎率高達90%!而且即使開獎的是最低倍, 我們也不會虧。

於是我就開著程式一直掛著, 不斷的中獎, 分數也越來越高, 抱著明天坐等收錢的心態就去睡覺了, 掛一夜看看到底能賺多少。

。 。 。 然而還是太天真了, 第二天起來一看, 分數原地踏步, 立馬看了下日誌, 原來如此, 先讓你贏點, 然後就會輸, 輸多了再讓你贏, 幅度控制在20%左右, 也就是最多贏120%, 就會讓你輸。

按照統計的客觀開獎概率, 為什麼會出現這種情況呢, 很不科學, 我開始重新審視演算法, 也在思考是不是忽略了什麼,

直到無意中看到了日誌中封包資料。

重點就是遊戲房間內好像有幾百人, 好像很多人玩很多人贏錢的樣子, 說話的就那麼三五個人, 其他人不管輸贏從不說話?一直24小時全部線上?不管任何時間段押注全是秒押?其實全是機器人!

也就是系統生成的玩家, 他們的存在一方面是充門面吸引玩家, 最重要的目的是説明系統下注, 混淆押注總額, 所以截取封包資料保存的樣本全是假的!

你根本無法獲取真實玩家的押注總額, 那麼服務端就可以根據真實的下注情況來選擇讓少部分人贏, 大部分人輸, 甚至可以根據不同的玩家發送不同的開獎結果。

核心思路應該是

int UserScore=User.Score;

……

if(UserScore*1.2>User.Score)

{

必輸!

}

老鐵, 懸崖勒馬, 回頭是岸。

Next Article
喜欢就按个赞吧!!!
点击关闭提示