schrum2 / MM-NEATv2

MM-NEAT version 2.0 is no longer supported. Please get MM-NEAT 3+ from https://github.com/schrum2/MM-NEAT
Other
11 stars 5 forks source link

Minimax Search for Board Games #309

Closed schrum2 closed 7 years ago

schrum2 commented 7 years ago

Create a general MinimaxSearchPlayer that is a BoardGamePlayer, and can work on ANY instance of BoardGame that you create. It will therefore need to be implemented in a very general fashion.

It will require some notion of heuristic function in order to operate. Therefore, a class named BoardGameHeuristic will need to be created. An instance of this can be sent to the constructor for MinimaxSearchPlayer.

Once basic minimax works, we can add alpha-beta pruning as well.

These are very common algorithms, and I believe you can see variations in both the microRTS codebase and the gvgai codebase.

I have also made some videos on the topic: https://youtu.be/uQkEyZlcx08?list=PLWi7UcbOD_0ttqb2OZlWhhLBzgdOySzvy

schrum2 commented 7 years ago

Currently, the Minimax play just looks like the OneStepEval player. I assume this was just a starting point that you intend to elaborate on, but if you need more guidance on the minimax player then let me know.

schrum2 commented 7 years ago

Create JUnit tests for this agent using the piece differential heuristic in othello. Once those are done, you can close this.

DarwinJohnson commented 7 years ago

The JUnit Test Case for the Othello Minimax PieceDifferential BoardGamePlayer is working. The PieceDifferentialBoardGameHeuristic is functioning properly.