我有一些想法,但我不知道如何去做:D 基本上就像在遊戲中一樣,每6個小時你可以打開一個胸部,在那裏你可以免費獲得一些物品。現在我想擁有一個用戶可以每6小時打開一次的胸部,我有用mysql服務器編寫的項目,每個項目都給用戶提供經驗值。但怎麼做呢? 可以說,數據庫中有15個項目,現在每個項目都有例如 nothing = 75% of getting it
sword_1 = 15% of getting it
sword_2 = 30% of getting it
其偶然性價值的想法怎麼辦呢?如何編程'機會'?
-1
A
回答
2
定義%的範圍來獲得一個項目 示例 - sword_1 = 0-15%,sword_2 = 15-45% 注意的是,上面的數字不爲100%,所以,除非你真的想要不止一次返回,有時候..上述範圍需要照顧一無所獲。 如果您想在一個卷軸上獲得多個獎勵,只需相應地調整範圍即可。
生成一個隨機數介於0和100之間。對於生成數量落入該範圍內的項目,這些是您在該回閤中獲得的獎勵。
0
您可以爲表格中的每個項目指定一個數值,獲得它的百分比將是它與其下一個最低數目之間的差異。
Nothing, 60 (60% chance)
sword_1, 70 (10% chance)
sword_2, 100 (30% chance)
確保您最大的項目是100
然後,您可以做一個選擇從表一中的隨機數:
SELECT * FROM ChestItems WHERE ChanceValue < FLOOR(RAND() * 100) ORDER BY ChanceValue DESC LIMIT 1;
有幾個(和更好的)方式你可以這樣做。這只是一個簡單的例子。
相關問題
- 1. 如何從遠程機器編譯?
- 2. 如何從編程機器人
- 3. 如何檢測會話過期編程
- 4. 手機編程?
- 5. 如何在遠程機器上獲得會話的會話ID?
- 6. 如何重置手機中的耳機圖標編程式
- 7. Beagleboard裸機編程
- 8. 機頂盒編程
- 9. 計算機編程
- 10. 機器人編程
- 11. IT編程到機器控制編程
- 12. 如何以編程方式更新Outlook會議與ASP.net會議?
- 13. 如何編寫只會重複一次隨機數的代碼?
- 14. 如何編寫頂點觸發機會的測試類
- 15. Android:如何獲得本機應用程序列表編程
- 16. 如何從Windows手機訪問短信消息線程編程
- 17. 如何編寫虛擬機
- 18. 如何通過Asp.net會話和應用程序編程架構
- 19. 在salesforce中以編程方式克隆機會及其線性
- 20. 是否有機會將軟鍵盤設置爲默認編程?
- 21. 以編程方式設置機架會話Cookie過期
- 22. 如果磁盤脫機,如何以編程方式檢測[c#]?
- 23. 如何編碼和編程
- 24. 如何編程編輯EDMX
- 25. 如何使用任何編程語言編輯/更新主機(etc/hosts)文件
- 26. 自動機編程語言
- 27. Finch機器人編程
- 28. xc8隨機數編程
- 29. 手機編程語言
- 30. 機器人:ATTR /編程
噸:查找「加權分佈」,你會發現很多解決這個問題的方法。 – BradleyDotNET 2014-10-20 17:34:40