64 ( +1 | -1 ) Chess programs (code/programmers)I was just wondering if any computer programmers out there have explored the coding of any chess programs. I am curious to the algorithms used and the priority of the algorithms given time contraints. I have looked through GNU chess a little, but there seems to be a lot of fluff and not much meat (I could be looking at the wrong source code). I was just looking for a chess program that is programmed more 'artistically' and less 'commercially' (if that makes sense). If anyone has any thoughts on the coding of any specific programs I would appriciate any comments. I prefer C programs, but I guess I could handle PASCAL or something of the sort.
125 ( +1 | -1 ) im presently coding oneSlowly but surely I'm writing a windows GUI for my chess engine.
... so I've got board setup / user interface / scoring , clocks, display, pgn import/export etc. all working.
.. thereafter I plan to abstract the thinking engine to be a self contained 'black box' that simply gets fed the present position, so I can chop and change engines etc. 'WinBoard' apparently does this already, although stubbornly I have chosen not to use it. But I dont intend to mix algorithms as I go instead I plan to write discreet methods for each technique used to code the chess engine, and I plan to only merge these together once I've got all the bits working.
Writing a chess engine is about the hardest thing a programmer can do, and its neverending!, I think you should consider it a lifetime project!.. but although its a vastly researched area I think there is scope for adding a touch of personality to your engine. eg. making a engine that is excellent at finding ways to only draw games! ( one of my bizzare ambitions ), making an engine that gambles on very unsound tactics for killer moves!, or even a cheeky engine that underpromotes but still wins... etc etc. ( these are human conditions that usually a computer engine does not employ! )
39 ( +1 | -1 ) BIT BOARDSJust getting to grips with bitboards now, elegant things! ...but a bit of clever design is required now to make sure I set this up reasonably efficiently.... its difficult to know about all the future problems.
But it seems representing the game state in bitboards, and constructing methods for querying legal moves etc using these is the way to go, if you want speed.