最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

砸率計(jì)算器

2023-10-11 13:43 作者:Crescebdo  | 我要投稿

注意:此工具除了測(cè)試砸率,還可以測(cè)試炮傷、刷新意外率、跳跳等。

見(jiàn)此。



太長(zhǎng)不看:

直接戳?https://marketplace.visualstudio.com/items?itemName=Crescendo.seml


什么是砸率計(jì)算?


某不知名專欄中所述,砸率主要有以下幾種(樸素砸率就別提了):

  • 1級(jí):極端值零砸率——最快的巨人不會(huì)砸

  • 2級(jí):個(gè)體零砸率——考慮單個(gè)巨人,不論出生點(diǎn)和途中速度如何,都不可能砸

  • 3級(jí):群體零砸率——考慮(無(wú)窮)多個(gè)巨人,不論出生點(diǎn)和途中速度如何,都不可能砸


雖是2年多前的定義,但放到今天也還算好用。


對(duì)于極端值砸率,直接使用速度計(jì)算器即可,還不會(huì)的可以戳藍(lán)鏈學(xué)習(xí)。


絕大多數(shù)墊材存活充分時(shí)間的情況下,極端值砸率是【夠用】的。但在一些場(chǎng)合,如墊材需提前鏟的,或是施墊時(shí)機(jī)過(guò)于詭異的,就可能存在【沒(méi)被墊到的巨人】反而成為最大威脅的情況。這也就是神秘的【群體砸率】了,也是砸率計(jì)算器著重解決的。



快速使用


Talk is cheap, show me how to use.


首先下載并安裝 VSCode(教程略)。然后進(jìn)入插件頁(yè),搜索“seml”并下載:


新建任意 “.seml”后綴的文件名,輸入以下內(nèi)容:


然后 Ctrl + Shift + P 呼出 VSCode 命令菜單,鍵入“測(cè)試砸率”后回車即可。



測(cè)試結(jié)果


其實(shí)測(cè)試結(jié)果是很好懂的,但這里還是解說(shuō)一下。


點(diǎn)開(kāi)生成的 .csv 文件:


上面的表是摘要:


一目了然,就是每波每路炮的砸率。注意所有砸率都指【單波砸率】,也就是每有5只紅眼,某炮被砸的概率。以PDc為例,在每波5只紅眼的出怪下,每波有~5%的砸率,每門炮有~1.25%的砸率。


之所以這樣計(jì)算砸率,是為了和炮傷的計(jì)算方式保持一致。


下面的表是詳細(xì):


紅框部分是玩家側(cè)的操作。HIT 代表紅眼受到此操作影響(被炮炸到,或被墊墊到),MISS代表未受影響??瞻状砑t眼尚未出生,或已死亡。


以砸率最高的這一行為例:


可以看到,這些(3303只)紅眼的共同特點(diǎn)是被第一波墊材墊到,但未被第二波墊材墊到,必定砸炮。這也符合常識(shí),因?yàn)镻Dc的砸率來(lái)源就是快速紅眼在第二波下墊前就對(duì)炮舉錘。



話說(shuō) Seml 是什么?


Seml 的全稱是 Survival Endless Markup Language,是專為描述 SE 操作定制的標(biāo)記語(yǔ)言。


它的語(yǔ)法結(jié)構(gòu)是很簡(jiǎn)單的(從上面的例子就能看到),具體細(xì)節(jié)請(qǐng)參考?https://marketplace.visualstudio.com/items?itemName=Crescendo.seml.


PS:Seml 插件有語(yǔ)法高亮,且若格式錯(cuò)誤則執(zhí)行“測(cè)試砸率”命令時(shí)會(huì)有提示,所以不用擔(dān)心“語(yǔ)法沒(méi)搞懂寫錯(cuò)了怎么辦”之類的問(wèn)題。



我想知道原理


對(duì)寫程序沒(méi)興趣的同學(xué)可以叉叉了,后面都是純技術(shù)討論的部分。(


以上面給出的數(shù)據(jù)為例,總共測(cè)試了 999000 只紅眼,耗時(shí)是多少呢?


答案是:耗時(shí) 12.98?秒, 使用了 32 個(gè)線程.


如果使用常規(guī) AvZ 跳幀,由于游戲限制每波最多 50 只紅眼,每次選卡就是 50*20 = 1000 只,要測(cè) 991 次選卡才行。一次選卡算它 3s 好了,那么就是要 991*3 = 2973s,即使 10 開(kāi)(開(kāi) 10 個(gè) PvZ 進(jìn)程)也要 297.3s,這還沒(méi)算上 10 開(kāi)其實(shí)并不是簡(jiǎn)單的效率*10,而是會(huì)有折扣。


換句話說(shuō),砸率計(jì)算器的運(yùn)行效率是 AvZ 跳幀的 ~100倍左右,拉開(kāi)了 2 個(gè)數(shù)量級(jí)的差距。


這是怎么做到的?這就要感謝二代技術(shù)黨 testla 在 2020 年編寫的 PvZ-Emulator (https://github.com/dnartz/PvZ-Emulator)。他通過(guò) IDA 反編譯 PvZ,復(fù)寫了游戲里與 SE 相關(guān)的所有邏輯,作為可調(diào)用的 C++ 靜態(tài)庫(kù)。由于免去了所有和更新游戲數(shù)據(jù)無(wú)關(guān)的內(nèi)容,其運(yùn)行效率比所有基于 PvZ 原版的測(cè)試框架都要快許多。砸率計(jì)算器便是基于此實(shí)現(xiàn)的。


據(jù)他本人說(shuō)他當(dāng)年是用這個(gè)訓(xùn)練無(wú)炮的,也就是真·智能無(wú)炮,在基本不設(shè)定規(guī)則的情況下讓模型自行學(xué)習(xí)打無(wú)炮的最佳方式(這也是當(dāng)年智能無(wú)炮的設(shè)想,而不是現(xiàn)在常見(jiàn)的“鍵控”無(wú)炮),不過(guò)這就是另一件事了,暫且不表。


當(dāng)然,使用者應(yīng)該注意,這不代表 PE 是沒(méi)有 bug 的,因此測(cè)試數(shù)據(jù)前,盡可能先測(cè)已有歷史數(shù)據(jù)的(如 PDc 砸率,在歷史上也認(rèn)為是 5% 左右,因此可以認(rèn)為砸率計(jì)算器基本沒(méi)有問(wèn)題),然后再測(cè)新的場(chǎng)景。就砸率計(jì)算而言,因?yàn)槿讨皇悄M巨人行動(dòng),所以出問(wèn)題的概率雖然存在但應(yīng)該不大。遇到 bug 歡迎反饋。



其它


基于 PE,筆者已經(jīng)寫了測(cè)試時(shí)空數(shù)據(jù)(坐標(biāo)極值),測(cè)試全收跳跳落點(diǎn),以及測(cè)試刷新概率的程序,均與舊有數(shù)據(jù)一致,相關(guān)源碼公開(kāi)于?https://github.com/Rottenham/pvz-emulator-examples。使用這些的門檻比砸率計(jì)算器稍高寫,需要你懂 git 并配有 C++ 編譯環(huán)境。


之后有計(jì)劃將這些測(cè)試也內(nèi)置進(jìn) seml,使得可以基于 seml 文件一鍵測(cè)試,敬請(qǐng)期待咯。除此之外,PE 可以解決的問(wèn)題還有很多,砸率炮傷刷新都能測(cè),技術(shù)黨不再開(kāi)游戲指日可待。(


砸率計(jì)算器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
靖边县| 彭阳县| 麻江县| 德惠市| 新兴县| 门头沟区| 双城市| 会同县| 平利县| 仁怀市| 舟曲县| 都安| 闻喜县| 博爱县| 德清县| 喀什市| 海门市| 镇安县| 昌黎县| 定州市| 健康| 前郭尔| 尚义县| 阿勒泰市| 义马市| 车险| 金昌市| 大丰市| 松潘县| 杭锦后旗| 余江县| 禄丰县| 酉阳| 安宁市| 射洪县| 额济纳旗| 贡嘎县| 延庆县| 昂仁县| 富川| 洱源县|