Author |
Topic: What now? (Read 716 times) |
|
erict
Forum Junior Member
Arimaa player #3977
Gender:
Posts: 7
|
So I re-wrote the Perl Move Generator script in on this page: http://arimaa.com/arimaa/download/ in Python (Omar do you want this? You only listed that you wanted a C/C++ version, not sure if you would consider Python). It wasn't easy, since the Perl script didn't use very good variable names nor very many comments. My question is, what is the typical approach to developing the bot? What me and my friend are doing right now is generating all the possible moves that the bot can make and evaluating the board states using the evaluation values in this thesis: http://arimaa.com/arimaa/papers/HaizhiThesis/haizhiThesis.doc However, it's very time consuming especially when we try to determine what the next player's move will be using Minimax (or one of its derivatives). Should the bot have functions that look over the board to see if it can do any of the well known strategies/attacks like the one on this page? http://en.wikibooks.org/wiki/Arimaa
|
|
IP Logged |
|
|
|
lightvector
Forum Guru
Arimaa player #2543
Gender:
Posts: 197
|
|
Re: What now?
« Reply #1 on: Apr 18th, 2009, 3:14pm » |
Quote Modify
|
You can do pretty much whatever you want - there are lots of approaches you can experiment with (different methods of tree search, learning features, monte carlo, heuristic pruning, etc). The "standard" algorithm is basically what you seem to be doing - search down the tree, using a hand-coded evaluation function after a certain depth. It sounds like you are doing straight minimax, in which case you should look at alpha-beta pruning (a quick search online will reveal any number of explanations and pseudocode). If you want to go the "traditional" route, following that, you can try heuristic move ordering, heuristically extending or pruning various parts of the search, and so on.. As for higher level strategies, typically these are built in by making the evaluation recognize such situations and score them appropriately. But you might find other ways to do this. Game-tree search is always very time consuming and difficult, simply because the exponential branching, and the difficulty of evaluating intermediate positions in the game. Anyways, good luck!
|
« Last Edit: Apr 18th, 2009, 3:19pm by lightvector » |
IP Logged |
|
|
|
|