Board logo

主題: [求助] [原創][求助]搖獎程式編寫 [打印本頁]

發表人: guo_shlan    時間: 2008-1-17 12:30 PM     主題: [原創][求助]搖獎程式編寫

請問各位大大:有人可以教導如何編寫搖獎程式或該去哪找呢?
                          我已經搜尋好久了(已爬過文)..
                     因為尾牙要用..
發表人: 阿達猴    時間: 2008-1-17 01:17 PM

是要亂數抓一筆資料出來的功能而以?!
發表人: atree    時間: 2008-1-17 02:42 PM

搖獎嗎
要看用那種語言寫吧
如果是簡單的從眾多號碼選一個出來的話
應該很簡單吧

我以前也有寫過
發表人: bonta    時間: 2008-1-17 03:21 PM

準備個摸彩箱吧
這樣就不用寫程式了
發表人: wugen    時間: 2008-1-17 03:39 PM

基本的其實不難.. 主要是用亂數產生器去產生一組數字:

1.  初始化亂數產生器(要不然每次結果都一樣)
2.  產生亂數
3.  轉成需要的數字(1-10,1-100等)
發表人: alexanita    時間: 2008-1-17 04:26 PM

<script type="text/javascript">
var vNum
vNum = Math.random()
vNum = Math.round(vNum*10)
document.write(vNum)
</script>

搜尋「random round 亂數」應該就很多範例了,
不過程式來抽大獎會不會被動手腳呢?


[alexanita 在  2008-1-17 04:28 PM 作了最後編輯]
發表人: guo_shlan    時間: 2008-1-17 09:06 PM

恩..說明一下..
就是假如有100個數字..搖100次..然後每一次的數字都不一樣..
因為我不會寫任何程式語言
不知有哪些大大可以教教我該怎麼做..
發表人: atree    時間: 2008-1-17 09:36 PM

那麼條件式
1.數字是001~100嗎
2.是100次內出現的數字都不能重覆嗎

先寫個大概
拿a大的來用一用
不過JAVA的我沒學過
應該還需要做陣列比對才不會重覆

將後面.txt改成.html
可以先看一看
是不是類似此種程式

[atree 在  2008-1-17 10:26 PM 作了最後編輯]

附件: 抽獎程式.txt (2008-1-17 10:23 PM, 448 bytes) / 該附件被下載次數 16
http://twed2k.org/attachment.php?aid=33702
發表人: jazzblue    時間: 2008-1-17 10:26 PM


引用:
guo_shlan寫到:
恩..說明一下..
就是假如有100個數字..搖100次..然後每一次的數字都不一樣..
因為我不會寫任何程式語言
不知有哪些大大可以教教我該怎麼做..
  

要一個完全不懂程式語言的人在短時間內寫出搖獎程式
是很困難的 ! 就算用最容易學的程式語言也要一段時間
還不如叫一個懂程式語言的人幫你寫比較快 ,我記得網路上有現成的亂數產生器程式
設好數字範圍就可以開始跑了 !  

若是要求公平且透明化應該用搖獎機比較好 !

[jazzblue 在  2008-1-17 10:27 PM 作了最後編輯]
發表人: guo_shlan    時間: 2008-1-17 10:36 PM

沒錯..就是像 atree 大大所說的..
可否請大大幫忙一寫下呢..
是否可寫成一個執行檔..然後有一些畫面..
例如說:請按此鈕..抽出獎項為..一些選項(因為我不懂..也不知道在說什麼)
就類似這樣..不知大大可不可以幫幫我們這些不懂程式語言的..
發表人: atree    時間: 2008-1-17 10:52 PM

可不可以將大概的流程講一下

例如
每個人自己去點按紐出現中獎號碼跟獎項嗎
獎項是100個嗎?

還是由主管按一次
一次出現100個不同的號碼跟獎項
發表人: guo_shlan    時間: 2008-1-17 11:13 PM

說明一下:
1.我們公司有101個員工,有101個獎項,我們先抽出員工姓名,然後每位員工自己去按鈕,然後由程式去選獎項,1~101號都不能重複,要人人都有獎

2.我是否可希望獎項數量可調整..例如:101改為45,或改為25,但還是跟之前所述,號碼都不能重複,因為公司是否到時會有人離職或新進,比較難控制

3.畫面可隨大大設計..不難看就好(基本上只要有程式..我都不會說不好看啦..要懷著感恩的心,有人幫就該偷笑了)
發表人: wugen    時間: 2008-1-18 08:45 AM

說實話, 用彩球也許會簡單一點, 也比較透明化.

要產生N組不重複的連續亂數, 需要用到一組陣列或是Linked List來儲存開獎號碼.
發表人: atree    時間: 2008-1-18 10:41 AM

最大的問題就是不重覆的陣列問題

人數跟獎項沒固定的話
可能要用動態記憶體配置

然後陣列比對問題
如果比對存放陣列中有重覆的話
在重跑一次~~這個寫法比較簡單,但是得到結果的時間久
要跑太多次了

另一個陣列是儲存1~101or 1~?的數值
抽到那一號就把那一個陣列打掉後面的往前補

不過這樣寫的話
好複雜說
外觀還不難
主要是計算方式
發表人: jazzblue    時間: 2008-1-18 10:59 AM

對於會寫程式的人這種演算法並不困難
不過敝人很久沒碰程式語言了,不可能短時間內寫出來,沒辦法幫到你!

離尾牙也沒幾天了,何不採用搖獎機呢
抽出的彩球只要不放回機器就不會重覆被抽到了
預算不多就自己做
買一百顆塑膠球,編上號碼放到紙箱中,紙箱上面挖一個僅容手伸入的圓孔
抽獎者手伸入抓一顆球出來就可以了。
這會比找人幫你寫程式還容易 !
求人不如求己   

[jazzblue 在  2008-1-18 11:13 AM 作了最後編輯]
發表人: dennischerry    時間: 2008-1-18 01:37 PM

設浮動布林陣列,用亂數產生號碼順位
當亂數產生號碼順位, 布林值改為0,
例如有100個人, 第一次出現8 , 則陣列8布林值為0
第二次以99為底產生號碼10, 用迴圈找陣列中布林值1的第10個順位(11)
第三次以98為底產生如果號碼又是10, 用迴圈找陣列中布林值1的第10個順位(12)
發表人: bonjacky    時間: 2008-1-18 02:30 PM


引用:
atree寫到:
在重跑一次~~這個寫法比較簡單,但是得到結果的時間久
要跑太多次了

另一個陣列是儲存1~101or 1~?的數值
抽到那一號就把那一個陣列打掉後面的往前補

不過這樣寫的話
好複雜說
外觀還不難
主要是計算方式


反正是用完就丟的程式
用 JavaScript 隨便寫寫
就算是 JavaScript ,用這種陣列的做法,很快就得到答案了
發表人: atree    時間: 2008-1-18 03:45 PM

JavaScript沒寫過

以前都用C++來寫
我還在研究JavaScript陣列要怎麼用說
發表人: Jonson    時間: 2008-1-18 04:34 PM

簡單用 HTA 寫了一個 (請下載附件解壓縮)
不知 HTA 如何執行者,用 IE 開啟即可

PS:
稍做補充...
HTA 其實就像是網頁,可用文字編輯器開啟、修改

檔案中:
var numLength = 101; //陣列大小、員工人數
var endMessage = '所有獎項已抽出,搖獎結束。'; //陣列已空,搖獎結束
這兩行是可以隨意修改的

numLength 是員工人數
endMessage 是所有獎項都抽完後要顯示的訊息

[Jonson 在  2008-1-18 05:21 PM 作了最後編輯]

附件: [抽獎程式2] rand.rar (2008-1-18 05:21 PM, 1.37 K) / 該附件被下載次數 16
http://twed2k.org/attachment.php?aid=33709
發表人: atree    時間: 2008-1-18 04:43 PM


引用:
Jonson寫到:
簡單用 HTA 寫了一個 (請下載附件解壓縮)
不知 HTA 如何執行者,用 IE 開啟即可


行家果然寫的比較快
發表人: Jonson    時間: 2008-1-18 05:01 PM

只是個玩家而已啦^^

不過程式沒有在搖獎後暫時凍結搖獎鈕
要慎防有人不小心連按兩下

PS: 附件已更改,新增: 搖獎後暫鎖搖獎鈕約 1 秒

[Jonson 在  2008-1-18 05:24 PM 作了最後編輯]
發表人: Moffatt    時間: 2008-1-18 05:21 PM

剛剛閒著沒事, 手癢用 VC++ 寫了一個....

電腦抽奬程式
發表人: guo_shlan    時間: 2008-1-18 10:52 PM

謝謝各位大大的支援及教導..
發表人: innova    時間: 2008-1-21 11:29 PM

如果是 尾牙要用的?
還是用 實際的 抽獎箱 會比較好吧?

用程式...   難免會有人懷疑 程式碼裡面有鬼 作假!?

尤其是...  當 抽出來的獎  大部分落在某部門人員身上的時候......
或是 程式提供/攥寫者 抽到大獎時!!




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0