hopkira / k9-chess-angular

Angular JS K9 robot controller, designed primarily for use on a iPad or Android touch device as a virtual joystick. Also visualizes the robot's surroundings using camera and sensor data.
http://k9-build.blogspot.co.uk/
The Unlicense
14 stars 10 forks source link

Create the first iteration of the Opponent Profiler #21

Open CarlSpencer-IBM opened 7 years ago

CarlSpencer-IBM commented 7 years ago

The Opponent Profiler should aspire to consist of:

To achieve this:

marisvs commented 7 years ago

A major component of the OP is the profiled game data (lets call it Opponents Game Profile = OGP). I see 2 options:

  1. Tree like structure to capture all played moves in the games and their results up to (but not including) midgame phase. Search is based on a hard key derived from the game position (FEN is default choice).
  2. Database of positions (again FEN based) but with a soft position/based key. I have seen some articles describing such a key. This possibly could support playing style based optimization. During the build-up of the OGP, we simply place played moves in the structure and add the game result to the leaves and path leading to the leave (in option 1). Of course, additional stats can be added. The main thing will be the rating difference with the opponent's opponent.

Either way, the OGP can be used during the opening phase of the game by selecting moves where the opponent has the lowest score ratio.

I suggest to start with option 1 because that is all doable, and, depending on resources, start doing some research around option 2 and combine both options in a later phase.