機率新手如何減少犯錯的機會(EXCEL、Program)

在製作EXCEL完後,我們通常要自行驗證自己的試算表是否正確,但驗證的路遠而寬廣,是你的程式寫錯,還是你的EXCEL出錯,我該怎麼判斷,是不是有一些規則可循?因為自認為目前只能算個初階機率而已,我想就讓我分享我在大海撈BUG時的一些技巧跟邏輯,希望之後的機率工程師可以更快的上手。

機率新手如何減少犯錯的機會(EXCEL、Program)
Photo by Joshua Hoehne / Unsplash
程式
  1. Feature類(Locked Wild 盤面變形)的程式邏輯先後要非常清楚,先算分還是先變化的處理上要非常小心,前後搞錯模擬出來會差很多
  2. Pay Table寫入數值正確很重要(曾經200寫成20炸掉過)
  3. 自然機率滾輪抽取後寫入盤面的位置正確很重要(曾經Reel 2抽完寫到Reel 3的位置)
  4. 盤面上有Locked Wild時,Scatter出現在同一位置的變化 (假設我的盤面把Locked Wild 預設為數字15,Scatter預設為數字16,我會設定數字17做為Locked Wild跟Scatter同時出現時使用)
  5. Line Game 及 Way Game的算分邏輯正確很重要(通常這比較少錯因為寫過一次基本上就是一直沿用)
Excel
  1. 盡量不要使用複製貼上(剛開始製作Excel時會因為貪圖方便,而使用複製貼上如下圖,我會直接把A3複製到B3,但當你A3做更改時B3會維持原樣,因此後來都會盡量使用在B5表格內填入 =A5 的方法減少錯誤)
  2. Way Game的滾輪表(因 Way Game的計算方式會在滾輪表最後補上相對應的圖示,數量是否正確)
  3. Way Game的滾輪表與計算Way Game數量長度是否相等(假設盤面是2*3)
  4. 馬可夫鍊是否有拉錯(通常數字差距大我會先從這部分開始檢查)
結論

當程式模擬與Excel都完成後,但最後模擬結果與Excel對不起來

  • 我都會先從Excel檢查起,像MID找出來的值是否正確,範圍抓得對不對,檢查完覺得都沒問題了,才會去程式裡面除錯
  • 程式先從宣告類下手(像是上面提到的Pay Table),之後才會去檢查程式邏輯,如果檢查到頭昏腦脹發現邏輯順不出來加入一些printf(C#是Console.WriteLine)去驗證先後順序,若是使用像C#有個更強大的功能是單步執行搭配使用斷點,其實就不需要土法煉鋼的printf,直接單步執行針對想看的dictionary或是值去看就可以了

希望可以幫助跟我一樣除錯除到快瘋掉的機率工程師們。