When GRAY MATTER knew she’d lost, she used to sometimes make illegal moves and leave herself in check. No longer! Now, in search::minimax(), at the move tree’s root node, she generates only legal moves.
Thursday, May 31, 2007
Sunday, May 27, 2007
Remote Testing
I have a MacBook, and I don’t enjoy burning my CPU at 100% and scorching my testicles every time I test GRAY MATTER. I’ve discovered a cool (pun intended) way to run GRAY MATTER on my desktop remotely and XBoard on my laptop locally:
For this to work, you need GRAY MATTER and an SSH server installed on your desktop, and an SSH client and XBoard installed on your laptop. On your laptop, launch a terminal emulator and issue the following command:
xboard -rsh ssh -fh domain.com -ruser username -fcp gray-matter/bin/gray
But replace domain.com with your desktop’s domain name or IP address, username with your username, and gray-matter/bin/gray with the path (either absolute or relative to your home directory) to your GRAY MATTER executable.
Saturday, May 26, 2007
Etymology of Checkmate
Just when you thought that it wasn’t possible, I became even more interesting. You see, the word checkmate is etymologically related to my last name, Shah. The word checkmate is derived from the phrase shah mat which translates to, “The king is defeated.” Read more.
Pondering, Terminology
I’ve added two new technical documents about pondering and terminology. These are works in progress. Hit me with your questions, comments, and flames.
Wednesday, May 23, 2007
Library Quotes
The public library is the most dangerous place in town. — John Ciardi
A truly great library contains something in it to offend everyone. — Jo Godwin
I pray that no child of mine would ever descend into such a place as a library. They are indeed most dangerous places and unfortunate is she or he who is lured into such a hellhole of enjoyment, stimulus, facts, passion and fun. — Willy Russell
Forget about the Senior Prom and go to the library and educate yourself if you’ve got any guts. Some of you like pep rallies and plastic robots who tell you what to read. Forget I mentioned it… Rise for the flag, salute. — Frank Zappa
Existing libraries, in their very being, seem to question the authority of those in power. — Alberto Manguel
Friday, May 18, 2007
Technical Documents
I’d started writing a series of technical documents as posts on this blog. I’d written about perft() and alpha-beta pruning when I realized that the posts were growing too large and unwieldy. I think that these documents have a better home in the wiki. If you’d like access to change anything about the wiki (or source code), comment on this blog, email me, or IM me.
Saturday, May 12, 2007
Friday, May 11, 2007
One Negative Sign
I’d forgotten one negative sign, which caused GRAY MATTER to pursue draws instead of checkmates! One negative sign! I hate myself.
Thursday, May 10, 2007
Simpler Code
In the move search, I’ve abandoned NegaScout for MTD(f). This has forced several other changes in the code. I’ve discarded the null-move and history heuristics in favor of straight FailSoft AlphaBeta.
The increase in search depth is spectacular, but even better is how much simpler the code has become. Sadly, I don’t think that everything works properly just yet. I’ll keep hacking at it.
Saturday, May 5, 2007
Friends Needed
One of the reasons that we’ve embarked on this project is to meet interesting people. We're looking to extend our circle of friends. These are the roles that we still need filled:
- Release Coordinator: Upon every major change to the GRAY MATTER source code (that affects its playing strength), this person will compile and upload a Windows executable. Here are the simple instructions to do this manually, but this entire process could be automated. Ideally, this person will have a box running Linux with Subversion, the GNU toolchain, and MinGW.
- Chess Player: This person will play chess against GRAY MATTER (or perhaps test GRAY MATTER on an Internet Chess Server) and provide feedback regarding its performance to its developers.
We also need developers who will contribute ideas or source code. If you’re interested in playing any of these parts, comment on this blog, email me, or IM me.
Friday, May 4, 2007
Hello, World
My name is Raj, and I’m the lead (pronounced l33t) hacker of a team that’s interested in chess. Our mission is to develop a competitive, pedagogical chess engine. And, most importantly, to have fun while doing it. On this blog, we’ll chronicle the development of our chess engine, GRAY MATTER, from girlhood, through adolescence, and into womanhood.
From the GRAY MATTER project page:
GRAY MATTER is a chess engine; it can play a game of chess. It isn’t very strong but is a good learning and teaching tool. Its authors aim to write readable, understandable, and hackable code. It’s written in C++ and employs good object-oriented practices. It uses some state-of-the-art techniques such as an MTD(f) move search and rotated BitBoards.
If you’d like to know more, comment on this blog, email me, or IM me.
P.S. First post!