One thing that is on my (way too long) list of things to try is n-gram chess. 1-gram chess would, for every move from black, have a dictionary of (following move, win probability) pairs, and it would pick one that is legal using the win probabilities to generate a distribution (if there is a sure win, almost always pick it; if there is a move that always lost before, pick it very rarely)
You can start this of with empty dictionaries, and have the thing learn after each game (let two copies play for a few days to get let them teach each other how to play chess)
2-gram chess would improve on this by using (white move, black's reply) as the key in such a dictionary.
I think that would make for better chess than this. For some N, N-gram chess might even superficially look like the real thing at times.
Chess engines make use of similar Markov-chain-like techniques, such as killer [1] and history [2] heuristics. They also use win-loss-draw outcomes from millions of grandmaster games in a similar way to build an opening database, to guide them through the opening, the phase which they are weakest at.
I'm trying to figure out how you could store this without having massive dictionaries after a night of training games. I guess it's all just integers which helps.
You can start this of with empty dictionaries, and have the thing learn after each game (let two copies play for a few days to get let them teach each other how to play chess)
2-gram chess would improve on this by using (white move, black's reply) as the key in such a dictionary.
I think that would make for better chess than this. For some N, N-gram chess might even superficially look like the real thing at times.