Pawn Pattern Matching

Discussion of chess software programming and technical issues.

Moderator: Ras

Dann Corbit
Posts: 12777
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Pawn Pattern Matching

Post by Dann Corbit »

Tony wrote:
Uri Blass wrote:
Tord Romstad wrote:
Dann Corbit wrote:I even think that chess programs should be written in this manner (for each algorithm, cite the origin and briefly describe the intention).
That is my notion of literate programming. Literate programming should literally be like writing a reference book.
I like the idea, especially for a program like mine, which is not designed with the purpose of being a competitive program, but rather to serve as an instructional example and a vehicle for research and experimentation.

The main problems are that it would take a lot of time (especially because it would often be quite difficult to find the origin of the algorithms), that I find it difficult to program when my code is too cluttered with comments (there are already far too many comments for my taste in Glaurung 2), and that I am not familiar with any of the literate programming tools for C/C++.

Does anyone have any experience with CWEB? Is it easy to install on Unix systems, and is there a comfortable Emacs mode for it?
Zach Wegner wrote:I like the history idea, but I have mine in a separate file. It bugs me to see all of that at the beginning of Crafty's main.c.
I also prefer a separate file.
The other thing I do is write a comment at the top of every function that specifies what it does, when it was created, and when it was last modified. The modify dates are off in some places, but for the most part they are accurate. It gives a good idea where I've been working recently.
For me, the Darcs change log satisfies all such needs. I keep my commits as atomic as possible, and always include the name of the modified function(s) and a brief description of the changes in my comment. When I want to know when I last changed my quiescence search, I just search for "qsearch" in the Darcs change log. This avoids the need to clutter my code with comments explaining the last time something was made, and also makes it easy to get a quick summary of the entire history of every function, not just about the most recent change.

Tord
Your program is clearly designed to be competitive based on rating lists

http://www.husvankempen.de/nunn/40_120_ ... glist.html

Glaurung2.01 has a bigger rating than Junior10.1 and even if you compare with some newer program like hiarcs the gap is not big and glaurung scores more than 40% against hiarcs.

Uri
Yeah, Tord must be lying.

He is always doing that.

Tony
Uri does not mean to be harsh when he speaks in that manner.
He is just a very frank person in conversation.
Tony

Re: Pawn Pattern Matching

Post by Tony »

Dann Corbit wrote:
Tony wrote:
Uri Blass wrote:
Tord Romstad wrote:
Dann Corbit wrote:I even think that chess programs should be written in this manner (for each algorithm, cite the origin and briefly describe the intention).
That is my notion of literate programming. Literate programming should literally be like writing a reference book.
I like the idea, especially for a program like mine, which is not designed with the purpose of being a competitive program, but rather to serve as an instructional example and a vehicle for research and experimentation.

The main problems are that it would take a lot of time (especially because it would often be quite difficult to find the origin of the algorithms), that I find it difficult to program when my code is too cluttered with comments (there are already far too many comments for my taste in Glaurung 2), and that I am not familiar with any of the literate programming tools for C/C++.

Does anyone have any experience with CWEB? Is it easy to install on Unix systems, and is there a comfortable Emacs mode for it?
Zach Wegner wrote:I like the history idea, but I have mine in a separate file. It bugs me to see all of that at the beginning of Crafty's main.c.
I also prefer a separate file.
The other thing I do is write a comment at the top of every function that specifies what it does, when it was created, and when it was last modified. The modify dates are off in some places, but for the most part they are accurate. It gives a good idea where I've been working recently.
For me, the Darcs change log satisfies all such needs. I keep my commits as atomic as possible, and always include the name of the modified function(s) and a brief description of the changes in my comment. When I want to know when I last changed my quiescence search, I just search for "qsearch" in the Darcs change log. This avoids the need to clutter my code with comments explaining the last time something was made, and also makes it easy to get a quick summary of the entire history of every function, not just about the most recent change.

Tord
Your program is clearly designed to be competitive based on rating lists

http://www.husvankempen.de/nunn/40_120_ ... glist.html

Glaurung2.01 has a bigger rating than Junior10.1 and even if you compare with some newer program like hiarcs the gap is not big and glaurung scores more than 40% against hiarcs.

Uri
Yeah, Tord must be lying.

He is always doing that.

Tony
Uri does not mean to be harsh when he speaks in that manner.
He is just a very frank person in conversation.
This has nothing to do with being frank. It's a choice to speak in that manner.
He keeps making this choice. It's impolite at least.

Tony