上一篇的水果盤程式只有3個滾筒和一個下注的輸入,最近將原程式改造成有9個滾筒和8個下注的版本

 


畫面的構成使用上一個程式的元件再擴增

20080708-01  

 

下注的數值輸入全部做到Time out事件中,不再另外增加Numeric事件

20080708-05  

 

 捲筒的停止沿用上一個程式的事件方式來做

20080708-06  

 

得分方面的判定因為這次共有8條線(橫3條、縱3條、斜2條)要比對,因此較為複雜,總之就是把9個捲筒的目前值依需求組合成8個比對組

20080708-02  

 

然後8個比對組分別寫得分判定程式,這部份沿用上一個程式,然後串聯8組計算總得分

20080708-03  

 

在8組判定得分的程式後面再串聯1個全中時的獎勵得點,最後依計算結果是正或負來計算是得到或失去點數,並將結果轉為文字輸出到遊戲訊息顯示框上

20080708-04  

 

這個程式有上一個程式所沒有的問題,上一個程式因為只有3個捲筒,中獎的機率全在按STOP鈕的時機。但這個程式有9個捲筒,按1個STOP鈕時會同時停止縱列3個捲筒,沒處理好會變成隨時都中大獎


為了解決這個問題使用了2D陣列的表格,然後用亂數隨機指定分配到每一個捲筒,使每個捲筒開始捲動時的畫面編號不同


原先直接以亂數乘6然後取整數,但這樣做有個問題就是0和6出現的機率偏低。執行700萬次後,1~5出現的次數約117萬次(正負約2000次),而0和6出現才約58萬次(正負約2000次)。實際用到程式中造成中間的得分偏高


為解決這問題必須提高每個號碼的出現率,使出現率接近相等。因此程式修改成亂數乘7減去0.5然後取整數,實際執行700萬次後,每個號碼的出現率都是約100萬次(正負約1500次),已達到程式需求

 20080708-07  

,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()