Re: [閒聊] 輪盤系統完工了..
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間14年前 (2011/06/17 23:02)推噓3(3推 0噓 5→)留言8則, 2人參與討論串3/3 (看更多)
myst 的做法是,type 有四種,因此 win_check 也做四回,
每回再依據每一 type 需 check 的次數各自迴圈。
因此,形成 win_check 被呼叫 N 次、然後 win_check 內的
迴圈也做 N 次的情況。
win_check 的內容很單純..
int win_check(string win_kind,string win_str,int pay_kind)
{
string win_id,user_id;
foreach(win_id in keys(rotary_data)) // 迴圈
if(sscanf(win_id,win_kind+"/%s",user_id)==1)
bet_winer(user_id,win_kind,win_str,pay_kind);
}
換言之,即使不寫函數,光只是硬把 foreach 套進每次的判
斷,就足以改善掉目前的 lag 情況。
但是呢,因為 foreach 的內容是針對每個 rotary_data,而
它是全域變數,因此產生了本次最佳化的基本改法..
foreach(win_id in keys(rotary_data))
{
先判斷 win_id 的類型,再依據類型做 switch() // 這裡用 str[..]
{
case type 1;
case type 2;
case type 3;
case type 4;
}
}
這樣只需針對 rotary_data 做「一次迴圈」,即可判斷出所
有獎項。
上面的東西預定明天修改完畢後重新開放。
Belldandy.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.9.179
推
06/18 09:50, , 1F
06/18 09:50, 1F
→
06/18 10:29, , 2F
06/18 10:29, 2F
推
06/18 11:03, , 3F
06/18 11:03, 3F
→
06/18 11:03, , 4F
06/18 11:03, 4F
→
06/18 20:05, , 5F
06/18 20:05, 5F
→
06/18 20:05, , 6F
06/18 20:05, 6F
推
06/18 21:38, , 7F
06/18 21:38, 7F
→
06/18 21:38, , 8F
06/18 21:38, 8F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
3
10
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
21
49