游戲開發(fā)之隨機概率的選擇算法
實現(xiàn)代碼超簡單,具體實現(xiàn)方法如下:
有時候當(dāng)我們的游戲人物遇敵時,我們需我怪物隨機根據(jù)概率選擇處理方式,如下:
1、50%的機會友好的問候
2、25%的幾率走開
3、20%的機會立即攻擊
4、5%的機會提供金錢作為禮物
下面的這個算法就是跟據(jù)概率數(shù)組,返回選擇的概率索引號。
int Choose(float[] 概率數(shù)組) { float total=0; //首先計算出概率的總值,用來計算隨機范圍 for(int i=0;i<概率數(shù)組.length;i++) { total+=概率數(shù)組[i]; } Random rd = new Random(); float 隨機值=rd.Next(0,total); for(int i=0;i<概率數(shù)組.length;i++) { if(隨機值<概率數(shù)組[i]) { return i; } else { 隨機值-=概率數(shù)組[i]; } } return 概率數(shù)組.length-1; }
以上就是本文的全部內(nèi)容,希望大家喜歡。
相關(guān)文章
利用Aspose.Word控件實現(xiàn)Word文檔的操作
偶然一次機會,一個項目的報表功能指定需要導(dǎo)出為Word文檔,因此尋找了很多篇文章,不過多數(shù)介紹的比較簡單一點,于是也參考了官方的幫助介紹,終于滿足了客戶的需求。下面我由淺入深來介紹這個控件在實際業(yè)務(wù)中的使用過程吧2013-05-05C#中的IEnumerable簡介及簡單實現(xiàn)實例
這篇文章主要介紹了C#中的IEnumerable簡介及簡單實現(xiàn)實例,本文講解了IEnumerable一些知識并給出了一個簡單的實現(xiàn),需要的朋友可以參考下2015-03-03同步調(diào)用和異步調(diào)用WebService
本文給大家介紹webservice同步調(diào)用和異步調(diào)用,同步調(diào)用就是一個同步操作會阻塞整個當(dāng)前的進(jìn)程,直到這個操作完成才能執(zhí)行下一段代碼,異步調(diào)用不會阻塞啟動操作的調(diào)用線程,調(diào)用程序必須通過輪流檢測,或者等待完成信號來發(fā)現(xiàn)調(diào)用的完成。小伙伴們跟著小編一起學(xué)習(xí)2015-09-09c# EPPlus秘籍之Excel實現(xiàn)圖表導(dǎo)出
這篇文章主要為大家介紹了c# EPPlus秘籍之Excel實現(xiàn)圖表導(dǎo)出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12WCF基礎(chǔ)介紹并創(chuàng)建簡單應(yīng)用程序
這篇文章介紹了WCF基礎(chǔ)并創(chuàng)建簡單WCF應(yīng)用程序,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01C# 使用 Castle 實現(xiàn) AOP及如何用 Autofac 集成 Castle
這篇文章主要介紹了C# 使用 Castle 實現(xiàn) AOP及如何用 Autofac 集成 Castle,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02