Reversi AI

Not sure if this belongs here but anyway…

I’m planning to write a reversii clone (also known as othello) as an experiment to see how well I can teach the computer to play it. My basic idea so far is to check each and every possible move, and give every move a score, and then choose the move with the highest score (or, if there is more than one move with the same highest score, pick a random one so that the AI doesn’t always play the same). My proposed scoring system is as follows: score a couple of point depending on where the piece is placed (spaces on the corners are more valuable, for example), then score 1 point for every piece of the enemy’s converted. Then check the all the opponent’s possible moves for this move, and subtract his highest possible score from this score.(This can go on for as much as I want the search depth to be, though I dont plan on letting it go farther than this). However I’m not the best reversi player in the world, so does anybody have any suggestions? Especially how much each square on the grid should count.

Thanks…

Sounds fine. You even have an easy level system - just increase the depth of the search for harder levels (processing power needed to compute deep searches in reversi is not much!).

Beyond that, you are best off just googling for strategy guides for reversi; don’t ask java programmers what strategies are best - seek out expert human reversi players ;D.