Over the past couple of daysI have been working on an engine that plays Reversi it makes it to about a depth of 8 in a reasonable time 15-60 seconds, it is written in Java and yes I know it would be faster to write it in C++, I'm just more experienced with Java.
I'm pretty new to making engines and obviously a good engine is only as good as it's search depth and it's abliity to evaluate a position.
Currently I use Alpha-Beta Pruning in my Minimax search algorithm. As I said, I'm not super experienced with making engines so is there other ways to safely prune my search tree?
Secondly I'm god-awful at Reversi, that means I can't effectively write a good evaluation function. Obviously It can evaluate a win or a loss, but that is simple. At first I tried evaluating a position where you have more disks than your opponent as better, and the greater the difference in disks the greater the evalution of the position. BUT!!! it turns out that is a really poor way to evaluate a position. So maybe if anyone here that is a pro at Reversi would like to help me just leave a comment stating how you would evaluate a position!
There are plenty of strategy guides on the web, and there are strong open source programs to look at. Even Wikipedia has an article on computer Othello.
Over the past couple of daysI have been working on an engine that plays Reversi it makes it to about a depth of 8 in a reasonable time 15-60 seconds, it is written in Java and yes I know it would be faster to write it in C++, I'm just more experienced with Java.
I'm pretty new to making engines and obviously a good engine is only as good as it's search depth and it's abliity to evaluate a position.
Currently I use Alpha-Beta Pruning in my Minimax search algorithm. As I said, I'm not super experienced with making engines so is there other ways to safely prune my search tree?
Secondly I'm god-awful at Reversi, that means I can't effectively write a good evaluation function. Obviously It can evaluate a win or a loss, but that is simple. At first I tried evaluating a position where you have more disks than your opponent as better, and the greater the difference in disks the greater the evalution of the position. BUT!!! it turns out that is a really poor way to evaluate a position. So maybe if anyone here that is a pro at Reversi would like to help me just leave a comment stating how you would evaluate a position!