HearthBuddy炉石兄弟 如何调试ai
Sepefeets's update to botmaker's Silverfish AI
This AI is a Custom Class for Hearthranger and Hearthbuddy which intends to simulate all possible turn actions and select the best.
Official Threads:
- http://www.hearthranger.com/forum/yaf_postst7352_Sepefeets-Silverfish-update--WotOG.aspx
- https://www.thebuddyforum.com/hearthbuddy-forum/community-developer-forum/249423-sepefeets-silverfish-update-wotog.html
build instructions:
- If you plan to do any significant work I recommend using linkshellextension to create junctions instead of actual copies of the "ai" + "cards" + "Penalties"
Hearthbuddy:
- copy the "ai" + "cards" + "Penalties" folders to the "HrtBddy" folder, then create a project out of everything in the "HrtBddy" folder
- add references for Hearthbuddy.exe and all the DLL's that come with it
- go to Project -> Properties -> Application and set target framework to .NET Framework 4.5
- go to Project -> Properties -> Build -> Advanced and set language version to C# 5.0 for HB compatibility
- build it however you want just to test that it does build but HB uses the source files not a binary
- there might be some errors I can't fix (I don't own HB), if you know how to fix it then let me know or submit a PR
- build Silver.exe too
Silver.exe:
- copy the "ai" + "cards" + "Penalties" folders to the "external process" folder, then create a project out of everything in the "external process"
- go to Project -> Properties -> Application and set target framework to .NET Framework 4.5
- go to Project -> Properties -> Build -> Advanced and set language version to C# 5.0 for HB compatibility
- build it as Release x86 for performance or Debug x86 for debugging, and copy the _cardDB.txt file to the bin\Release and bin\Debug folders
How to simulate boards with silver.exe:
- create a "test.txt" file in the same folder as silver.exe
- copy your current board, like
#######################################################################
start calculations, current time: 00:00:00:0000 V116.27 control 5000 face 15 twoturnsim 1000 ntss 6 16 160 playaround 50 80 ets 16 ets2 160 ents 16 secret
#######################################################################
mana 3/10
emana 10
own secretsCount: 0
enemy secretsCount: 0 ;
player:
1 2 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
ownhero:
priest 27 30 0 False False 4 True 0 False 0 0
weapon: 0 0 unknown
ability: True CS1h_001 3
osecrets:
enemyhero:
warrior 15 30 35 False False 36
weapon: 0 0 unknown
ability: True AT_132_WARRIOR 0
fatigue: 9 0 7 0
OwnMinions:
twilightguardian AT_017 zp:1 e:212 A:4 H:10 mH:10 rdy:False natt:0 ex ptt spllpwr(1)
EnemyMinions:
boombot GVG_110t zp:1 e:184 A:1 H:1 mH:1 rdy:True natt:0 ex
Own Handcards:
pos 1 arcaneintellect 3 entity 9 CS2_023 0 0
Enemy cards: 4
ownDiedMinions:
enemyDiedMinions:
og: 169,2;1152,1;248,2;246,2;251,1;557,2;1150,2;209,2;430,2;642,1;372,1;1010,2;371,1;701,2;
eg: 995,1;708,1;429,2;740,2;495,1;514,1;648,2;333,1;241,2;516,2;1218,1;188,2;749,2;
it will then calculate this board and print the first 100 best boards (sorted from best to worst) and simulate the whole turn of the best one.
if you add "test" to the first line:
#######################################################################test
start calculations, current time: 00:00:00:0000 V116.27 control 5000 face 15 twoturnsim 1000 ntss 6 16 160 playaround 50 80 ets 16 ets2 160 ents 16 secret
#######################################################################
...
you can input the index of the displayed boards to simulate the whole turn of this board (indexes are be displayed in the list of the first 100 best boards)
DefaultRoutine.cs文件来自 https://github.com/ChuckForkHearthBuddy/silverfish/blob/doomsayer%2BgetPlayfieldValue/HrtBddy/DefaultRoutine_nH.cs
How to install:
(- make a copy of the original defaultroutine-folder (but don save it in routines folder))
- delete the DefaultRoutine folder in Hearthbuddy/Routines
- extract the stuff inside the DefaultRoutine_nH.zip to that Hearthbuddy/Routines folder
(if you did it correctly you will have a Hearthbuddy/Routines/DefaultRoutine/Silverfish - folder)

https://www.thebuddyforum.com/threads/custom-deck-silverfish-ai.170312/
... also known as "Ultimate Ai"
Hi, im Botmaker (reorder the chars in my username ;P) and i present you the (ultimate)
Silverfish-AI
(i will use "uai" as a abbreviations in most cases)
This ai should be able to handle most decks, with an acceptable winrate.
How it works:
the ai simulates (almost) every possible combination of actions, which you are able to do in your current turn.
it gave every simulated board a value, and chooses the moves which leads to this board.
Download:
https://github.com/noHero123/silverfish/blob/master/HrtBddy/Silverfish/Silverfish.zip?raw=truee
or use https://github.com/noHero123/silverfish/trunk/HrtBddy for svn checkout
Install instructions:
Load the rar-file and copy the Silverfish-folder into the CustomDecks-folder
follow this guide:
http://i.imgur.com/yfhU9kT.png
If everything works well, you should show the two new custom decks in you dropdown list :

Then you can choose one of the two behaviors (Rush for rush-decks, Control for board-control decks)
in your Hearthbuddy.
Control will focus on clearing the board
Rush will focus on attacking the enemy directly
Note : This custom deck works for Hearthbuddy versions >= .82
Source:
https://github.com/noHero123/silverfish (the repo after the rewrite)
https://github.com/noHero123/HRCustomClasses (for Hearthbuddy release, look at HrtBddy folder)
Thanks to Hankerspace, who helped me to transfer this ai to hearthbuddy (i cant use hearthbuddy
)
Thanks to Hankerspace, who helped me to transfer this ai to hearthbuddy (i cant use hearthbuddy
)
Howto Report bugs/missbehaviors:
Got to CustomDecks/Silverfish folder, there should be a folder-named "UltimateLogs", this is the place
Where the battle-logs are saved (each fight is stored in another logfile
(and a start/stop of the bot should also create a new one)),
Each log has the timestamp of the battle-begin and contains all the data to resimulate your turn, so im able to tweak the ai.
Please post them whether you report bugs (or i will ignore your
bugreports). (but if you are thinking, that you found a hearthbuddy-bug,
post the log from your hearthbuddy-window)
Dont know whether Tracking or Druid-choice-cards are working! please
test it, and if you are thinking that the ai did the wrong move please
post the log.
Sincerely
Botmaker
update v113.3:
https://www.thebuddyforum.com/heart...custom-deck-silverfish-ai-28.html#post1667060
update v112.4
- some tweaks with aoe-spells
- some other bugs
update v111.4
-some fixed (like better mana handling, give token-minions less value etc, full graveyard in log)
update v111.3:
- the use of the external process is turned off atm (next turn calculations are also turned off, to compensate the speedloss)
- silver.exe is deleted from hrtbuddy-svn-folder + zip
- some fixes
update v111:
- fixed some bugs
- added Enemy's response to your second turn simulation (default on (because of the next point))
- added external process (is used at default) will make the calculations more than 10 times faster!
YOU HAVE TO START IT MANUALLY (just start the Silver.exe in the CustomDecks\Silverfish\Data -folder and DONT CLOSE IT)
(i cant start external programms with the .cs-versions (atm))
update alpha 15:
- fixed bonus for killing minions that spawn other minions on death
- raised the value of every card from 1 to 5 (fixed the wasting of cards, whether they will buff a minion on your side )
- will not simulate the second turn, whether the enemy has lethal on that board
update alpha14:
- fixed board-comparison (will fix multiple use of the hero-power in one turn and other stuff)
update alpha13:
-tweaked multiturn simulation (new default value is 256) and the amount
of calculated second turn-boards is halved every recalculation 
update alpha12:
-changed two turn simulation: it will now only simulate the 2. turn of
the 500(default) best boards. change the number by editing the .cs file:
change the number in the line:
Ai.Instance.setTwoTurnSimulation(false, 500);
(dont set it to high!!!!, set it to 0 to turn the second turn simulation off)
update alpha11:
-fixed shadow word pain
-fixed traps
update v110alpha10:
- rewrote a very big part of the ai
update v97:
- should not waste upgrade
- tweaked soulpriest
- lethal detection tweaks
- should not ignore bloodmage anymore
- tweaked mukla
- tweaked knifejuggler
- tweaked placing
- fixed manacalculations
update v94:
- fixed hero-power usage
- new option in advanced settings:
set the minimum probability for using the play-around-aoe-spells-feature:
simulation uses the enemy aoe-spells only, if the probability to have
this aoe-spell in hand is higher, than the given border (a value from
0-100) (default 40)
-fixed placement with 4 minions
update v93:
fixed 2 turn simulation
update v92 (delete the old files):
- fixed weblord + spectral knight (did this a week ago, but was overwritten due to the new database ;_
- should fix ancestral spirit
- fixed windfury
- fixed sylvanas
- fixed buffing spells (and target nothing)
- fixed iceblock detection
- fixed blessing of might
- fixed discard penalty
update v91:
-should work like charme
update v81:
-some fixes due to last update
-very small enemy-turn-sim-speedup
-will draw cards whether enemy has lethal
update v80:
-enemy turn simulation is a lil bit faster
-fixed stealth-issues
-little tweak in control-board-evaluation
update v79:
-some tweaks for warrior
update v77:
- updated _mulligan rules:
- you will not attack with an sword of justice.
- warrior should attack first, then armor up
- should not spawn mobs, that spawn another mobs, whether these "kids" have no place on field
- fixed return to hand (enemy draws now a card ;D (so ai knows that destroying > return to hand))
Edit:
if you want to change the two turn simulation you have to change the number of this line:
Ai.Instance.setTwoTurnSimulation(false, 256);
if you change it to
Ai.Instance.setTwoTurnSimulation(false 0);
the second turn simulation is turned off.-
to play around some aoe-spells, change:
bool playaround = false;
to
bool playaround = true;
(bot might be to carefull)
(they are only experimantal functions)
HearthBuddy炉石兄弟 如何调试ai的更多相关文章
- HearthBuddy炉石兄弟 Method 'Entity.GetRace' not found.
解决方案 namespace Triton.Game.Mapping{// Token: 0x020004A4 RID: 1188[Attribute38("Entity")]pu ...
- HearthBuddy炉石兄弟 格雷迈恩
getDecks(); 设置 private void getDecks() { Dictionary<string, int> tmpDeck = new Dictionary<s ...
- HearthBuddy炉石兄弟 Method 'CollectionDeckBoxVisual.IsValid' not found.
[CollectionManagerScene_COLLECTION] An exception occurred when calling CacheCustomDecks: System.Miss ...
- 炉石兄弟 修复图腾师问题 by大神beebee102, 还有阴燃电鳗
修复图腾师问题 beebee102 修复了先摇图腾再下图腾师的问题,另外加了阴燃电鳗的sim卡.在兄弟策略的模拟程序中测试了没问题,真机没有试过,麻烦吧友测试了回复一下.链接: [有效] http ...
- “分而治之”,一种AI和动画系统的架构
译者注:随着国内游戏研发水平的不断提高,对画面品质的不断提升,同时大量手游使用Unity和Unreal 4等成熟的工具开发,动作状态机已经不是什么陌生的概念了.我们在项目开发时也大量使用了动作状态机. ...
- HearthBuddy中_settings.txt的更详细参数解释
https://tieba.baidu.com/p/5275382967 默认的配置不是很合理,花了点时间读了下silverfish(也就是兄弟用的AI)的代码后也尝试修改了些参数,有没有效果仁者见仁 ...
- Playfield 类方法的注释
前言 本篇随笔的底包采用的是百度炉石兄弟吧20200109折腾版中自带的 routines 文件. 本次仅为绝大多数方法添加 xml 注释和简单解析,没有具体解析与重构. Playfield 类方法众 ...
- [.NET] ConfuserEx脱壳工具打包
[.NET] ConfuserEx脱壳工具打包 ConfuserEx 1.0.0脱壳步骤 Written by 今夕何夕[W.B.L.E. TeAm] 1.先用UnconfuserEx把 ...
- Windows用户如何安装cpolar内网穿透
概述 本教程适合于Windows用户,安装并使用cpolar工具. 什么是cpolar? cpolar是一个非常强大的内网穿透工具,开发调试的必备利器 它可以将本地内网服务器的HTTP.HTTPS.T ...
随机推荐
- JavaScript随机验证码
利用canvas制作一个随机验证码: 1.clearRect:context.clearRect(x,y,width,height);清空给定矩形内的指定像素 2.fillStyle:设置画笔的颜色 ...
- S5PV210 点亮Led
GPC1CON, R/W, Address = 0xE020_0080 GPC1DAT, R/W, Address = 0xE020_0084 举例 #define GPC1CON *((volati ...
- 01.Zabbix监控快速入门
1.监控知识基本概述 1.为什么要使用监控 1.对系统不间断实时监控 2.实时反馈系统当前状态 3.保证服务可靠性安全性 4.保证业务持续稳定运行 2.如何进行监控,比如我们需要监控磁盘的使用率 1. ...
- 《浏览器工作原理与实践》<02>TCP协议:如何保证页面文件能被完整送达浏览器?
前言: 在衡量 Web 页面性能的时候有一个重要的指标叫“FP(First Paint)”,是指从页面加载到首次开始绘制的时长.这个指标直接影响了用户的跳出率,更快的页面响应意味着更多的 PV.更高的 ...
- PendSV异常介绍、用于上下文切换
在这里,非常感谢<cortex-cm3权威指南>的翻译者. PendSV 的典型使用场合是在上下文切换时(在不同任务之间切换). 例如, 一个系统中有两个就绪的任务,上下文切换被触发的场合 ...
- 11_Hive TransForm 案例
1.需求:将Json格式的数据处理后插入新表中 数据文件如下:rating.json,文件格式:{"movie":"2858","rate" ...
- subs函数
matlab中subs()是符号计算函数,表示将符号表达式中的某些符号变量替换为指定的新的变量,常用调用方式为: subs(S,OLD,NEW) 表示将符号表达式S中的符号变量OLD替换为新的值NEW ...
- java 项目坑记录
1. spring项目引入了lombok jar包,且已在类上面添加@Data注释,还是关联不到 get() 和 set() 方法 需要安装扩展包 如果在线安装失败,提示错误readtime out, ...
- linux——系统命令
(1) 显示系统日期和时间:date 显示系统当前时间 例如:date (1) 切换用户:su 用户名 以其他用户身份使用系统,(类似windows10系统,有些程序以管理员身份执行) ① 从r ...
- Spring入门篇——第2章 Spring IOC容器
第2章 Spring IOC容器 介绍Spring IOC容器的基本概念和应用 2-1 IOC及Bean容器 自己的理解:什么是IOC?就是利用配置文件(外部容器)来创建对象. 在IOC容器中,所有对 ...