mud 板


LINE

看板 mud  RSS
最近心血來潮實做仿大樂透的系統 分享一下讓有興趣的人參考參考 使用 mapping system_dbase 作為存放各期開獎號碼、銷售資料、彩金資料等等 mapping player_dbase 作為存放玩家購買的彩卷號碼 實作心得: 首先想好一個樂透系統該讓玩家有什麼動作和順序才能完成整個流程 投注商店 -> 購買號碼(自選|電選) -> 查看號碼清單 -> 開獎程序 -> 統計結果 -> 自動兌獎 buy_lottery list_lottery lotteryd check_lottery 1. 投注商店: set("lottery_shop", 1); 相關指令都指向 lotteryd 2. 購買號碼(自選|電選) buy_lottery 自選: a. 限制購買6個號碼及只能選擇 1-49 號 b. 檢查購買的號碼中是否有重覆號碼 c. 購買後自小到大重排順序(可有可無) a: if(sscanf(arg,"%s,%s,%s,%s,%s,%s", n1, n2, n3, n4, n5, n6) == 6) b: for(i = 0; i < sizeof(my_number); i++) { nf = 0; foreach(string mn in my_number) if(mn == my_number[i]) nf++; if(nf > 1) return notify_fail("第"+chinese_number(i+1)+"個號碼與後方號碼重覆,只能選擇不重覆 1 - 49 號的數字。\n"); } c: my_number = sort_array(my_number, (: sort_number :)); 電選: for(i = 0; i < 張數; i++) { if(!arrayp(take_number = take_nodouble_number())) { return notify_fail("購買彩票出現錯誤,請使用 sos post 回報。\n"); break; lottery_data[round_size]["player_dbase"][myid] += ({ take_number }); tell_object(me, HIC"彩票系統自動產生第"+chinese_number(i+1)+"組號碼:"+implode(take_number, ",")+"\n"NOR); } take_nodouble_number() 是一個可以傳回random不重覆號碼array的function 不論自選或電選,應該都先在前方設定一個 check_user_data() 的 function 用於 新增/檢查 user 的 lottery data array or mapping 以免產生問題 3. 查看號碼清單 太簡單,跳過 4. 開獎程序: 也很簡單,大約是做個 1-49 個號碼的 array,在選出號碼時去掉 array 內的號碼就可以 5. 統計結果: 首先做一隻 check_number 的 function 大約是 //7 頭獎 6全 if(array_eqv(numbers, result)) return 7; //6 貳獎 5+1特別 //5 參獎 5 //4 肆獎 4+1 //3 伍獎 4 //2 陸獎 3+1 //1 普獎 3 foreach(string num in numbers) { if(member_array(num, result) != -1) flag++; } switch(flag) { case 5: if(member_array(spe_number, numbers) != -1) return 6; else return 5; break; case 4: if(member_array(spe_number, numbers) != -1) return 4; else return 3; break; case 3: if(member_array(spe_number, numbers) != -1) return 2; else return 1; break; } return flag; 看回傳的數字來判斷是否中獎和什麼獎項 之後再將預計發出去的獎金和中獎人數記錄寫進該期的 system_dbase 去 6. 自動兌獎 同上,很簡單 本來以為會很龐大繁瑣和複雜,沒想到寫完其實很簡單 但在獎金分配的時候有卡住一陣子,對數學真的不在行>< 實做後自己玩,終於明白大樂透的中獎機會真的是很低!!!!! -- 還記得遙遠過往被深藏的回憶嗎?   如果您已經忘了被現實和繁忙淹沒的曾經     那麼就讓我們幫助您找回那份屬於青澀年代的純真吧 用文字幻化出華麗與夢想的彼岸   金庸修真 telnet://jy.mud.com.tw:6666 盼能帶領您找回似曾相識的記憶深處中最美麗的夢幻 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.12.224
1F:推 QQmother :騙錢!! 20萬兩gold玩完 have a shit 123.192.148.71 01/22 20:03
2F:→ laechan :推.另提一點個人看法,list_lottery其 1.165.164.2 01/22 20:08
3F:→ laechan :實可以不用做,不管是自選或電腦選 1.165.164.2 01/22 20:16
4F:→ laechan :自選玩家有留底,電選玩家不care選啥 1.165.164.2 01/22 20:20
5F:→ kyoe :那是輪盤!!! 1.163.12.224 01/22 20:29
6F:→ stimim :如果你有 sort 的話,只要看相鄰的一 36.226.38.248 01/22 22:24
7F:推 stimim :不一樣就知道有沒有重複了 36.226.38.248 01/22 22:28
8F:→ kyoe :那 1,2,3,4,5,1有相鄰嗎-.- 111.240.22.89 01/22 22:36
9F:推 stimim :你 sort 過就會變 1 1 2 3 4 5 啊 36.226.38.248 01/22 22:44
10F:→ laechan :號碼sort過再存,理論上會比較好處理 1.165.164.2 01/22 22:45
11F:→ kyoe :有道理耶!!我沒想到 111.240.22.89 01/22 23:19
12F:推 darkmoon1725:老木沒gg 118.160.187.73 01/23 00:17







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP