|Pointy Stone 3 Othello by Jonathan Kreuzer|
Update: I haven't been doing much with Othello lately, playing or programing, but I did in the beginning of 2005 try a few days of programming on Pointy 3. I thought I might be able to very quickly make some improvements. I think I did manage to improve the search & time usage slightly, but when I tried automatically recomputing the pattern values using more training positions, I got much worse values, so no new version for now. I might attempt bug-free pattern computing when I have more time. Also I want to add an analyze mode, since that shouldn't take too long.
I have many ideas for future improvements to Pointy stone, which basically come in 2 general flavors, AI strength, and features to make Pointy more useful and fun for humans.
Possible AI improvements:
I need better and more tuned pattern learning. I hope to test out more flags, like for each slice, a flag for whether each edge square of the slice is stable (these flags can be updated any time an edge move that leads to more stabile edge pieces is played)
I have an idea (that may or may not be worth the slowdown, but the slowdown shouldn't be bad) of including flags on the slice patterns about whether the middle 6 discs are completely surrounded by other discs in the directions other than the slice direction. These flags could be updated when making moves (it would only have to check if the disk placed created the need to update some of these flags) and would allow the computer to know at the very least how much extra potential mobility a move creates.
Forward Pruning is also essential for top Othello programs, and I plan to experiment much more with this. ( Basically it stops searches early for moves that seem really bad compared to the current best found, and unlikely to get better.) I was considering a quiescence search (such as for when X Squares are played and the corner can't be taken,) but Forward Pruning is somewhat similar is set it up to continue looking in such situations.
There's always the possibility of better move ordering, and therefore less nodes searched. I'll have to test how much better the ordering can get in the midgame. The Move ordering in the endgame could always use an improvement, although right now I think it might be easier to improve endgames by optimizing the endgame search speed.
Oh, and also generate a large opening book, instead of the 20K one that Pointy has now. I've started on adding automatic opening book generation, the current book is a combo of hand-entered & semi-automatic updating.
Usability / Fun Improvements
A tutorial that introduces players to various Othello concepts, such as mobility, wedges, stoners, swindles, parity, endgame strategies etc. I've actually started on this, but it isn't done yet. It includes many playable example positions to illustrate these key concepts.
More variety of brains tuned for a specific type of poor play, so humans can practice against an edge grabber, someone who doesn't know much about mobility, someone who loves corners, or someone who doesn't know about parity. Possibly even a tournament mode against various types of players.
Page by: Jon Kreuzer.