红运当头 我中了论坛大奖

技术与开发

小编中奖了!小编中的不是现实生活里面的彩票,而是论坛中的幸运大奖,得到的也是好多论坛币,这下可以到论坛商店去“血拼”了。大家想知道论坛的幸运大奖是怎么设计出来的吗?

44-f12-1.jpg

论坛幸运大奖插件的原理比较简单(以动网论坛为例),会员利用论坛币投注买号,号码是由4个数字组成。开奖时,如果幸运号码和开奖号码一致,会员便获得当期的幸运大奖,买号越多获奖的机会越高。

根据这个规则,首先我们要设计的就是投注用的投注机,它的作用是让会员投注并将投注的信息存储到数据库中,在开奖时间到了以后,生成开奖号码,对比所有投注的号码,将奖金发送给中奖的会员,最后将中奖情况公布出来即可。根据相同原理,我们还可以制作出幸运之星等插件。

第一步:设计一个投注机

我们首先添加4个下拉列表框,它们的下拉列表选项为0~9十个数字,这样会员便可以选择任意的4位数字了。为了方便会员投注,我们还可以添加一个“机选”按钮,当会员点击该按钮以后,系统会自动选择4个数字组成号码。

在会员确定投注后,需要判断他是否有足够的论坛币购买幸运号码,如金额足够便将投注信息存入数据库以备开奖使用,否则投注失败。新建一个ASP页面,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

function SelRandom() {//机选

BuyCaiPiao.CP1.options[Math.random()*10].selected=true;

BuyCaiPiao.CP2.options[Math.random()*10].selected=true;

BuyCaiPiao.CP3.options[Math.random()*10].selected=true;

BuyCaiPiao.CP4.options[Math.random()*10].selected=true;

〈form action="CaiPiao.asp" method=Get name=BuyCaiPiao〉

〈input type="hidden" name="job" value="save"〉

〈select name="CP1"〉

〈option selected〉1〈/option〉

〈option〉2〈/option〉

〈option〉3〈/option〉

〈option〉4〈/option〉

〈option〉5〈/option〉

〈option〉6〈/option〉

〈option〉7〈/option〉

〈option〉8〈/option〉

〈option〉9〈/option〉

〈option〉0〈/option〉

〈input type=submit value="投注"〉

〈input type="button" value="机选" onclick="SelRandom()"〉

第二步:实现开奖功能

到了开奖时间后,我们要生成一个开奖号码,查询数据库中所有与开奖号码相同的号码,将总奖金与获奖注数相除获得每注中奖号码的奖金,再将奖金发送给每个获奖者。

同时,将本次开奖号码、获奖人数、奖金情况等信息存入数据库。在上一步的ASP页面里,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

' 获得总金额

rs.open "select * from CP_Record where ID="&id,conncaipiao,1,3

ZongJinE=rs("YuE")

ZhongJiangHaoMa=rs("Number")

rs.close

rs.open "select count(id) from CP_User where Qi="&ID,conncaipiao,1,3

ZongJiTouZhu=rs(0)

rs.close

ZongJinE=ZongJinE+ZongJiTouZhu*5

' 获得中奖注数

rs.open "select count(ID) from CP_User where Qi="&id&" and HaoMa="&ZhongJiangHaoMa&"",conncaipiao,1,3

ZhongJiangZhuShu=rs(0)

' 每注奖金

if ZhongJiangZhuShu>0 then

JiangJin=Int(ZongJinE/ZhongJiangZhuShu)

else

JiangJin=0

rs.open "select * from message where id is null",conn,3,3

do while not rs2.eof

rs.addnew

rs("Sender")="彩票中心"

rs("incept")=rs2("UserName")

rs("Title")="第"&ID&"期彩票开奖公告"

Content="本期中奖号码为"& ZhongJiangHaoMa &"。总计投注"&ZongJiTouZhu&"注,奖池总额"&ZongJinE&"元。其中中奖"& ZhongJiangZhuShu &"注,每注得奖金"& JiangJin &"元。"&chr(13)&"本期剩余奖金"&ShengY&"元滚入下期奖池。"

Content=Content&" "&ZhongJiangUser

rs("Content")=Content

rs("issend")=1

rs.update

rs2.movenext

'写中奖情况表

rs.open "select * from qingkuang where id is null",conncaipiao,3,3

rs.addnew

rs("ZhongJiangHaoMa")=ZhongJiangHaoMa

rs("ZongJiTouZhu")=ZongJiTouZhu

第三步:公布中奖名单

最后,我们需要将本期中奖的名单在论坛中公布出来,以保证开奖的公开性。从数据库中读取本期开奖号码、总投注数、总投注金额、中奖注数、中奖金额、中奖人等信息,将这些信息生成到特定页面中。在ASP页面里,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

〈table align=center cellspacing=1 cellpadding="3" border=0 class=tableborder1〉

〈tr〉〈th〉彩票中心——本期中奖情况〈/th〉〈/tr〉

〈tr〉〈td class=tablebody2〉

〈br〉

〈table cellpadding=5 cellspacing=1 class=tableborder1 align=center style="word-break:break-all;"〉

〈tr〉

〈TD class=tablebody2 align=center height=20>期 数〈/td〉

〈TD class=tablebody2 align=center>中奖号码〈/td〉

〈TD class=tablebody2 align=center>总投注数〈/td〉

〈TD class=tablebody2 align=center>总投注金额〈/td〉

〈TD class=tablebody2 align=center>奖池总金额〈/td〉

〈TD class=tablebody2 align=center>中奖注数〈/td〉

〈TD class=tablebody2 align=center>单注奖金〈/td〉

〈TD class=tablebody2 align=center>奖池剩余奖金〈/td〉

陈邓新:幸运大奖插件不仅可以使论坛的货币流动起来,而且还能给论坛增加一定的娱乐性。如果大家有兴趣的话,也可以将大奖的规则进行重写,制作出如同现实生活中的双色球彩票、体育彩票等插件。