Sign in to follow this  
TheRulingEmpire

Board Game AI

Recommended Posts

Currently, a friend and I are starting a small competition between each other. The goal is to see who can write the best AI for reversi. While I know this has been done before, we both decided this would be a good start to get some learnin' on for AI, and to see who's the better programmer. My question is, what do I need and where should I start? While I have some ideas on the design of the AI, I am new to AI: - Branch testing all possible moves and choosing the move with the highest chance of getting the most stones. - Placing values on board spots that are more important such as sides and corners for future evaluations of the board and getting a better chance of acquiring more stones. - Regional evaluation for where the next move should be played that will give the highest chance of acquiring more stones. - Neural nets seem to be popular, throw in one that leverages the above values for a better chance? (I've read all the tutorials/articles on this site about them, but have never developed one. It's a far cry for really understanding them if you've never developed one.) Another question is on the language of choice for this. While I am most experienced in C/C++ and JAVA, I have had some experience in Common LISP. Mostly we're doing this to learn/see who's better, so I don't exactly want to go out and find a solution already built to use. That defeats the purpose of why we started this. So what I guess I am asking is for general advice for this project, and help in which direction I should go. I don't have any time constraints so a particular solution that might be deemed to complicated/time heavy is allright. Thanks for any help!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I think you should look up min-max search. It is an algorithm that will evaluate all the possible board positions for a certain number of moves ahead.
It can rather simply be enhanced with alpha-beta pruning which will give a great improvement in efficiency. There are even further enhancements that you can find on the net.
Use google, you will find plenty of links.


To make min max search work well you will need to have a good evaluation algorithm too. One thing you might want to consider in the evaluation algorithm is the number of white vs black markers.
As you mentioned, having a marker in the corner is good and should probably also be reflected in the evaluation algorthm.
I wouldn't be surprised if there are tips for evaluation algorithms to be found by google. If you can't find any make up you own and tweek it by letting the computer play agianst itself.

One thing you could do is to have a database of the best moves given a certain table. The number of moves is probably huge so this will probably only be feasible for the first few moves. I don't know if this method will give you much in reversi, but has been applied to chess and checkers with success.

Share this post


Link to post
Share on other sites
hi guys...

can you also help me with my problem?
we have this research project in our school and me and my groupmates were planning to make the board game The Game of the Generals as our project.
can you help me with our design for this game?
we are also planning to use JAVA for the coding.
can you shed some lights on how to begin our project?
thanks in advance..

Share this post


Link to post
Share on other sites
Quote:
Original post by mayvee
we are also planning to use JAVA for the coding.
can you shed some lights on how to begin our project?


.. learn java ..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this