Use a different method for the ai #21
Labels
No labels
breaking change
duplicate
good first issue
help wanted
invalid
question
scope: card
scope: docs
scope: game
scope: registry
scope: script
scope: tool
scope: universe
tracker
type: bug
type: card request
type: documentation
type: enhancement
type: improvement
type: parity
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
LunarTides/Hearthstone.js#21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently the ai uses a kind of “sentiment analysis” and looking at some numbers like stats and amount of keywords to determine “good” cards. This is basically just guessing but was a simple way of adding a “smart” ai.
Another solution could be to create a sandbox where it simulates what happens after it plays every card in it’s hand and chooses the one with the best outcome. One way to do this without messing with the game state could be to create a perfect copy of the game and making the move there, sandboxing the different cards. Doing it this way should make the ai make better decisions since the ai can see the direct outcome of a card before it plays it instead of just guessing and having to react to the outcome when it’s too late to change it’s mind. The ai could also choose every possible target when evaluating a card, which would make the ai choose better targets as well. This should be an “easy” solution that should directly make the ai play better. The old system should be kept so you can switch between them in the ai config.
Maybe also add a depth to the ai so it can look into the future. The ai can't look at the player's cards so the future is pretty uncertain so the future cards get less valuable the more into the future it is.
I was not able to add this. It would require too many breaking changes and too much time.
Second attempt. I have gotten further. First pass is already commited.
The AI needs to be re-thought overall...
Blocked by #464 or a similar solution