首页 技术 正文
技术 2022年11月17日
0 收藏 462 点赞 3,493 浏览 8711 个字

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:

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)

HearthBuddy炉石兄弟 如何调试ai

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 :

HearthBuddy炉石兄弟 如何调试ai

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 HearthBuddy炉石兄弟 如何调试ai)

Thanks to Hankerspace, who helped me to transfer this ai to hearthbuddy (i cant use hearthbuddy HearthBuddy炉石兄弟 如何调试ai)

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 HearthBuddy炉石兄弟 如何调试ai

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 ;_HearthBuddy炉石兄弟 如何调试ai
– 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)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,817
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,900