demilich1 / metastone

Hearthstone simulator written in Java with full GUI support
GNU General Public License v2.0
132 stars 80 forks source link

Doomsayer and the A.I. #334

Open Muppet1 opened 7 years ago

Muppet1 commented 7 years ago

The card the A.I. struggles with the most is Doomsayer. It seems to pay no attention to this minion either on its side or its opponents and will happily play minions that are doomed.

Something like a don't play minions(that aren't totems), with no deathrattle or jade effect if an opposing doomsayer is staying in play this turn. Is I think a start.

webadict commented 7 years ago

Even more than that, sometimes AI will have enough to kill a doomsayer and NOT kill it, even going as far to deal damage to it, but not finish it off.

doctorpangloss commented 7 years ago

The AI doesn't look past the current turn and therefore cannot model the effects of Doomsayer.

demilich1 commented 7 years ago

That is exactly the reason why the A.I. cannot "understand" Doomsayer

webadict commented 7 years ago

Well... Since I have to make a "Skip a turn," we could add an additional look at the start of next turn, which is probably helpful in determining priorities for other minions too.

Muppet1 commented 7 years ago

Ah I see I sort of assumed some sort of Monte Carlo sim was used like in Magearena.

doctorpangloss commented 7 years ago

@Muppet1 Based on my reading of the literature that specifically uses metastone as an AI platform, it looks like GreedyOptimizedTurn is better performing that the MCTS already written in metastone. As lots of people have tried implementing MCTS AIs and none seem to be particularly newsworthy, there are a few things that could be true:

The first is almost definitely true. The second is probably just a characteristic of Hearthstone being a more accessible game than Magic. Looking at only your current hand is a really effective basic strategy in Hearthstone.