I've been fiddling with Prolog for a little while, and thought it
would be a fun project to see if I could encode chess knowledge
directly in Prolog. That is, without alpha-beta, etc., just represent
various patterns and decisions strictly as facts and rules and such in
Prolog. For example, I imagine that it shouldn't take more than a few
rules to define an algorithmic approach to playing the king-and-queen-
vs.-king endgame perfectly. I've written an alpha-beta-based engine
before, and been thinking about chess programming for years, so I know
a bit about it. I also used to be a tournament chess player (though
never a very good one!).
Anyway, a couple of questions:
1.) Anybody know of such a project that's been done before? I'd love
to read any related papers or existing source, for chess or other
games.
2.) Anybody willing to take a look at my code from time to time to see
if there's a more idiomatic/faster/generally-better way to go about
it? So far, I've got a minimal parser written for FEN, which is a
notation for representing chess positions. Next up is an (again,
minimal) implementation of the winboard protocol, so I can get up and
running on a chess server. Then I'm going to start playing it against
various endgame bots on there, to see if I can make any progress on
the rules.
3.) Any other general comments/advice would be welcomed.