bastiatomic / hols_der_geier

the game 'hols der geier' written in java with some bot behavior
1 stars 0 forks source link

Stolas behavior and ToDos #25

Open bastiatomic opened 3 years ago

bastiatomic commented 3 years ago

They will train on pairs of func(centerCard,enemyDecision)

  1. get all bots found on GitHub and make a csv with 100 games
  2. write manually all found pattern and give them to the bot (supervised learning...)

then the bot will figure out, how much the enemyBot behavior pattern fit with the given library and make an approximiation on how much it thinks that the enemyBot follows these pattern Stolas will create an approximiation for each "manually recorded" pattern. then i'll compare how much games Stolas has to play to make correct approximiation

the bot will make an approx after each move and suggest later counter moves

bastiatomic commented 3 years ago

generalize patterns, to be able to adapt to small changes. make the thought process visible google sheets

bastiatomic commented 3 years ago

https://en.wikipedia.org/wiki/Reinforcement_learning https://en.wikipedia.org/wiki/Genetic_algorithm https://de.wikipedia.org/wiki/Minimax-Algorithmus https://www.youtube.com/watch?v=X6J5R5OUPis -> core idea

bastiatomic commented 3 years ago

find similar card games and their ideas / bot solutions

bastiatomic commented 3 years ago

calculate the "math distance" from centerCardChoice and letzterZug(), try to find patterns and try to abuse this when there's a tie; try to win against "n+5 or random"

bastiatomic commented 3 years ago

implement more bots and let them play against Stolas (n+5&random). try to find all errors and fix them for the highest win rate. you cant fix everything because of randomness, but try your best. find holes in your patterns.

bastiatomic commented 3 years ago

the bot can detect if it won/lose the last round and can adjust (higher/lower) its own variables. Thats what ML is all about. Getting feedback and adjust its own parameters based on the feedback.

bastiatomic commented 2 years ago

Reinforcement learning: switch case for each -5,...,+10 every case has values like n+5, opponentCards.contains(....), HighValue, negativeFactor, myCards.contains(...) etc. with every game they will randomly change these factors and see what changes will do the most/least

bastiatomic commented 2 years ago

mitgehen oder nicht? wenn cC = 10, der Gegner noch 15 hat, ist es dumm, mit 14 "mitzubieten"!