From the author, Pawel Koziol
In 2008 me and Edmund Moshammer wrote a thing called CPW-Engine, attempting it to be a didactic piece of code for Chessprogramming Wiki. It succeeded only as a self-learning exercise, because at that time both of us knew next to nothing about chess programming. Nevertheless that sin against all principles of good coding has been accessible on the Chessprogramming Wiki, and sometimes even some of the code snippets were referred to on this very forum.
About a month ago I looked at that code again and decided that showing 2008 version to the public is plain wrong. Today a slightly less wrong version has been uploaded, both at the wiki and under the following link.
https://github.com/nescitus/cpw-engine
It is still wrong in many places, but at least some bad decisions were revoked and some misconceptions cleared. Changes include:
- adding late move reduction
- changing hash retrieval logic in PV nodes
- changing futility pruning logic
- adding static eval pruning
- deleting lots of garbage from eval function
- interpolating between midgame and endgame scores
Probably it does not make sense to test this engine, as its only purpose was to show a couple of chess programming techniques. It should perform a bit better than Sungorus, which makes it uninteresting from competitive standpoint. If somebody wants to improve it - fine, but IMHO the only thing that makes sense would be to make code more readable and gradually remove some more idiocies that are left in the source.
In 2008 me and Edmund Moshammer wrote a thing called CPW-Engine, attempting it to be a didactic piece of code for Chessprogramming Wiki. It succeeded only as a self-learning exercise, because at that time both of us knew next to nothing about chess programming. Nevertheless that sin against all principles of good coding has been accessible on the Chessprogramming Wiki, and sometimes even some of the code snippets were referred to on this very forum.
About a month ago I looked at that code again and decided that showing 2008 version to the public is plain wrong. Today a slightly less wrong version has been uploaded, both at the wiki and under the following link.
https://github.com/nescitus/cpw-engine
It is still wrong in many places, but at least some bad decisions were revoked and some misconceptions cleared. Changes include:
- adding late move reduction
- changing hash retrieval logic in PV nodes
- changing futility pruning logic
- adding static eval pruning
- deleting lots of garbage from eval function
- interpolating between midgame and endgame scores
Probably it does not make sense to test this engine, as its only purpose was to show a couple of chess programming techniques. It should perform a bit better than Sungorus, which makes it uninteresting from competitive standpoint. If somebody wants to improve it - fine, but IMHO the only thing that makes sense would be to make code more readable and gradually remove some more idiocies that are left in the source.