精華區beta GambleGhost 關於我們 聯絡資訊
※ [本文轉錄自 talk 看板] 作者: plover (>//////<) 看板: talk 標題: Re: dunk 時間: Wed Aug 3 16:08:27 2005 ※ 引述《Altair (欲寄相思千里月)》之銘言: : 請洽本板專屬程式顧問 -- 小根根 : ※ 引述《dino2 (從此)》之銘言: : : 我也是看到這人數 : : 不過 : : 本來不是說取餘數嗎~___~ : : 為什麼是餘數加一呀~___~ 慘券是怎麼開獎的咧?這問題大家都很關心, 我也很關心, 一 切的關鍵都在   https://opensvn.csie.org/pttbbs/trunk/ 這個網址是 PttBBS 目前主要開發的版本, 也是批踢踢實業坊 和批踢踢兔兩個站台所使用的版本. 在這個版本中含有最新的 程式, 但是可能會不穩定, 有 bug, 甚至和之前的版本不相容. 接下來來看: https://opensvn.csie.org/pttbbs/trunk/pttbbs/util/openticket.c 這裡面跟你講怎麼開獎的, 不懂程式沒關係, 聽我唬爛就對了. 一開始你會看到下面這一行程式碼: static char *betname[8] = {"Ptt", "Jaky", "Action", "Heat", "DUNK", "Jungo", "waiting", "wofe"}; 這個有熟悉到吧, 假設我們忽略一些東西, 上面的資訊告訴我 們: betname[0] = Ptt betname[1] = Jaky betname[2] = Action betname[3] = Heat betname[4] = DUNK betname[5] = Jungo betname[6] = waiting betname[7] = wofe 接著繼續看下去, 看一下 int main(int argc, char **argv){} 裡面的內容, 好多都看不懂耶, 但是重點我幫大家抓出來了: attach_SHM(); bet = SHM->UTMPnumber % 8; 這意思就是: 要開多少, 由 share memory 中的 UTMPnumber 變數來決定, 也就是根據批踢踢實業坊主機記憶體的上站人數 來決定! 為什麼呢?因為批踢踢大站上站人數很不固定, 可以 當成夠亂的亂數!程式碼中也有一些討論, 老站長說因為開獎 時間有規律, 所以會被賭客找出規律, 所以不採用 random() 函數, 總之重點就是根據上站人數來決定! 細節是假設站上有 x 人, 把 x 除以八看餘數: 餘零就開 Ptt 餘一就開 Jaky 餘二就開 Action 餘三就開 Heat 餘四就開 DUNK 餘五就開 Jungo 餘六就開 waiting 餘七就開 wofe 當站上有 人, 那該開幾呢?@O@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.142
flura:這一篇有控制碼 為什麼沒有警告呢? 218.166.67.176 08/03
catsangel:緊握小根根 01/10 17:39
catsangel:緊握小根根 01/10 17:41
catsangel:緊握小根根 01/10 17:43
catsangel:緊握小根根 01/10 17:45
catsangel:緊握小根根 01/10 17:48
catsangel:緊握小根根 01/10 17:51
catsangel:緊握小根根 01/10 17:53
catsangel: 01/10 18:13
catsangel:緊握 01/10 18:25
catsangel: 01/10 18:27
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.142
jijeng2001:5 03/23 19:53