-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Your implementation rocked George and play-mancala. #1
Comments
Also, http://play-mancala.com is rocked. But technically speaking, there could be an unfair advantage because play-mancala does not allow to let the bot play first, so the initial 3,6,1 combination could be of advantage. |
Apparently, we lost against OLIMPO on boardgamearena.com. Seemingly there's a 5,1 move that made us lose the game. |
What was the depth settings you used? Default is 5 - but you can make it much more stronger setting this to 6-7-8 depending how much time you have for each move. |
We were using depth=6, because most of the time the calculations took too long to respond in time with higher depths :) We tested it a lot, and only two players on the boardgamearena website had some exceptional strategies that were able to beat your implementation. Most of the time they were using a small set of stones to play on time, and the algorithm figured out the final values ech step (degrading more into minus direction), but would still prefer the optimum strategies the other players were expecting. We also figured that there are some standard openings that most players play, and that they could be represented with a lazy cache to save some calculations for these scenarios. We created a little fork and started to figure out how we could implement something like that, but for now we were just tweaking around a bit. Also, I think that boardgamearena has a cool mechanic to prevent an unbalanced playfield after the first move, because the second player can chose whether or not he wants to switch sides. So the standard move with 3, 6 isn't recommendable in that scenario - because it would help the counterpart. So something like 3, 2 or 3, 1 is much much better as it prevents the opponent from gaining that potential advantage when you play the first round. Another problem that we figured is that there seem to be more than 2 rules for a "single stone" landing in an empty field. Your variant is the Swedish variant that we (as Germans) also know, but the gameboardarena guys seemingly have an additional rule in their Mancara game that somehow when the single stone lands on the other (opponent side) in an empty field behaves differently. But tbh I have no clue on how it works or what the rule was, because most wikipedia articles didn't list any rule that would explain it properly. So sometimes we had a corrupted game board state and needed to improvise near the end of the game - but were able to use the same strategies that the solver would suggest (e.g. playing on distance or time to enforce the opponents movement and keep the same end-result when you are leading). |
Wow, that is an amazing feedback. What drives you to do all that comparisons for mancala? Just fun? I would love to see how one could implement something like MCTS with Adversarial Playing Learning (something like Alpha-Go did) for Mancala, but I suspect nobody would do that not-so-complicated game. |
My flatmate and me basically started playing mancala for fun during lunches on the weekend. And we kind of realized that we "somehow" knew how to play the game, but had no rules specifically in mind to react on different strategies of the opponent. Then we decided to make a little "AI battle" where each counterpart tries to figure out the optimum way to solve the game. So we're kind of still in the phase of figuring out whether an LSTM/RNN, DQNN or NEAT based solution would be better. An evolutionary concept like NEAT would probably fail in the long run against mentioned two "pro players" that were planning ahead more than 10+ steps and their strategies of building up traps by risking their own stones would probably work, so from my opinion DQNNs or LSTMs are probably the better choice. But what we like about the game is that the rules are very simple and can be trained to NNs very easily. When it comes to playing different - unexpected - strategies, I think MCTS would benefit the solver, when being used in parallel; so that the NN could decide between couple strategies on how to play, given on what it assumes of the future states of the game board. |
Kudos. We tested your implementation against George. And it won, George was destroyed.
(We tested a couple of implementations today to figure out the best way of solving mancala, and before that George won against pretty much every solver)
Link to George: http://www.lookoutnow.com/game/mancala.htm
Note: You have to change the rules of George when it comes to the rule which player gets the stones when they run out of stones.
The text was updated successfully, but these errors were encountered: