999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

運用閾值逼近解決游戲中的變動式隨機概率問題

2018-01-31 12:00:26吳佳驊
科教導刊·電子版 2017年34期
關鍵詞:游戲

吳佳驊

摘 要 游戲的爆率影響著游戲的用戶體驗,使用變動式隨機概率能提供較好的用戶體驗,本文運用閾值逼近的方法給出了一種變動式隨機概率的實現方式。

關鍵詞 游戲 隨機概率 閾值逼近

中圖分類號:TN948.7 文獻標識碼:A

如今的信息時代下,在人們的日常休閑娛樂方式中,游戲已經成為相當普遍的一個選擇。各種游戲層出不窮,市場競爭也相當激烈。從最近的調查結果來看,游戲的良好用戶體驗是一款游戲留住用戶的根本。除了游戲本身的設計公平性和趣味性之外,游戲中的爆率也是很重要的一環。游戲如果使用固定爆率則等于把用戶完全扔進了看臉拼人品的世界,很不利于使用戶擁有良好體驗。所以如何設計實現變動式的隨機爆率,是游戲設計中需要考慮的一環。閾值逼近方法就是適合解決變動式隨機爆率的一種方式。

所謂閾值逼近方法,其核心就是設定一個基本的閾值,然后一次一次向閾值逼近的過程。在逼近過程中得到逐漸趨近于閾值的幾率。比如原始幾率10%,閾值為50%,一次事件發生后該幾率增加1%,下一次事件發生時的實際幾率為11%,依此類推,直到成為50%的不變值。

游戲中爆率類的幾率性事件很多,除了基本的掉裝備材料的爆率之外,卡牌類的抽卡概率,游戲技能的觸發概率,游戲角色暴擊概率,都屬于這類事件。

以游戲技能的觸發概率為例,比如某游戲中的技能A有30%的額外傷害概率,可以設置初始概率為5%,設置閾值為60%,如果當次未觸發,則下次使用時概率乘以2,如果再次沒有觸發,則繼續該算法計算,最終達到60%。如果某次觸發了技能A的額外傷害,則將下一次的概率重置為初始概率。如此一來,最糟情況下3次未觸發之后就擁有60%的高概率,比恒定30%的概率用戶體驗要好很多。

為了使這個概率變動模型能夠復用,可以考慮在程序中將其寫成類,

class Randomrate{

double basicrate,rate,toprate,step;

public Randomrate(double br,double t,double s) {

basicrate = br; rate = basicrate; toprate = t; step = s;

}

public double getrate() {

return rate;

}

public void increaserate() {

if (rate == toprate) return ;

rate *= step;

if (rate >= toprate) rate = toprate;

}

public void initrate(bool ifhandle) {

if(ifhandle) rate = basicrate;

}

}

其中,basicrate是初始概率,rate是實際概率,toprate是閾值,step是實際概率的變動步進值。

如此這般,在技能A第一次使用前即可建立Randomrate的對象one,之后只需要每一次調用one對象的getrate()方法即可獲得當次技能A的額外傷害概率,將每一次額外傷害發生與否的布爾值作為參數傳入one對象的initrate()方法,如果剛剛發生過額外傷害,則下一次的傷害概率就會還原為原始的basicrate的值。為了節省游戲資源,可以在進入戰斗場景時建立對象one,而在離開戰斗場景時釋放對象one,下一次進入時再重新建立。

除此之外,閾值逼近還有另外一種形式,即得到一個逐步縮小的隨機區間,從而變相地獲得高概率。

這種形式用來解決卡牌類游戲的高級卡抽牌概率最為合適,因為這類游戲的用戶通常希望在若干抽之后就必定能獲得一張高級卡。

這種形式下的概率實現,可以使用隨機數,比如概率15%,實際操作中可以看做是隨機取得1-10000之間某個數,若取得的數是1-150,則使隨機事件發生。將其寫成類,

class Randomrate2{

int min,max,maxnow,top,step;

public Randomrate2(int mi, int ma, int t,int s) {

min = mi; max = ma; maxnow = max; top = t; step=s;

}

public int getmaxnow() {

return maxnow;

}

public int getmin() {

return min;

}

public void discreasemax() {

if (maxnow <= top) return;

maxnow -= step;

if (maxnow <= top) maxnow = top;

}

public void initmaxnow(bool ifhander) {

if (ifhander) maxnow = max;

}

}

其中,min是隨機范圍的下限值,max是初始上限值,maxnow是實際上限值,top是閾值,step是實際上限值變動的步進值。

如此這般,當用戶第一次抽卡時建立Randomrate2類型的對象one,抽卡時按one.getmin()--one.getmaxnow()這個范圍獲得隨機值,如果不中,則執行one的discreasemax()方法減小實際上限值maxnow,下一次抽卡時的隨機范圍便降低了,也就等于變相增大的發生概率。實際上限值減小到閾值top時將保持不變。每一次抽到高級卡與否的結果會作為參數傳入one的initmaxnow()中,若某次用戶抽中了高級卡,則實際上限值maxnow會重置為初始上限值max。

在實際操作中,如想盡快達到閾值,可以設置較大的數為step,也可以把步進方式改為除法或其他數學運算,比如2分法。如果想要確保若干次后必定可以抽到高級卡,可以將閾值設定為min或者有效區間的上限值。endprint

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 精品国产免费观看一区| 色精品视频| 亚洲人成网站色7799在线播放| 久久www视频| 国产麻豆va精品视频| 欧美一区二区福利视频| 欧美日本在线观看| 欧美日韩北条麻妃一区二区| 青青草国产免费国产| 日韩av无码精品专区| 在线视频一区二区三区不卡| 67194亚洲无码| 成人91在线| 青草视频久久| 一级香蕉人体视频| 亚洲另类色| 日韩激情成人| 91久久偷偷做嫩草影院| av性天堂网| 狂欢视频在线观看不卡| 五月激情综合网| 欧美三级视频网站| 日本尹人综合香蕉在线观看 | 日韩久久精品无码aV| 国产黄在线免费观看| 欧美精品成人一区二区视频一| 99爱在线| 午夜免费小视频| 亚洲欧美日韩天堂| 久久综合伊人77777| 国产网友愉拍精品视频| 欧美日韩成人| 夜夜爽免费视频| 国产无人区一区二区三区| 国产色爱av资源综合区| 激情综合图区| 蝌蚪国产精品视频第一页| 在线观看av永久| av性天堂网| www.国产福利| 99国产精品国产高清一区二区| 国产乱子伦手机在线| 在线高清亚洲精品二区| 国产a v无码专区亚洲av| 永久免费av网站可以直接看的 | 国产精品视频白浆免费视频| 国产精品视屏| 很黄的网站在线观看| 伊人久久大线影院首页| 国产jizz| 亚洲国产欧美国产综合久久 | 91在线丝袜| 亚洲人成网站色7799在线播放| 国产美女一级毛片| 亚洲人人视频| 国产熟睡乱子伦视频网站| 人妖无码第一页| 亚洲中文字幕在线一区播放| 日韩av无码精品专区| 香蕉视频在线观看www| 欧美特级AAAAAA视频免费观看| 亚洲人成在线精品| 久久超级碰| 99re在线观看视频| 青青操国产视频| 99久久亚洲精品影院| 一级毛片免费不卡在线| 亚洲成人网在线观看| 国产在线无码av完整版在线观看| 精品国产香蕉在线播出| 亚洲精品国产日韩无码AV永久免费网 | 五月婷婷丁香色| 国产精品女在线观看| 无码电影在线观看| 999精品视频在线| 日韩一级二级三级| 国产成a人片在线播放| 久久中文字幕不卡一二区| 国产产在线精品亚洲aavv| 在线不卡免费视频| 久久91精品牛牛| 伊人久久大香线蕉综合影视|