Monday, April 24, 2006

Over and over again.

I was hoping to get more accomplished today, but even so it's a good feeling. The accomplishments, not the fact that I have no idea how I'm going to finish by Thursday! Today I managed to get it to understand Castling, Checkmate, En Passant, and Pawn Promotion, as well as fixing a bunch of little bugs that popped up as I continued to test everything after every change. It would have been much quicker if I hadn't gone ahead with bitboards. They may speed things up when using 64-bit processors, but they are a lot extra to keep up-to-date. Those were probably my biggest challenge.

I would probably have gotten more done today, but I spent about an hour this morning helping my brother (he had a corrupt disk and needed a file off it). Luckily I was able to get it. Then this afternoon I spent about 2 hours helping Jon set up his new computer. I felt bad since he had it sitting around for a week with me focusing on my project (I told him I'd help him set it up a few weeks back when he bought it), so I finally did it.

I'm a bit surprised that it really hasn't slowed down much as I've added more code. Right now it's calculating between 615,000 moves per second at ply 5 to as much as 818,000 moves per second at ply 8. Of course, at ply 8 from the starting position it thinks for 11 minutes and calculates 550 million moves. I'd still love to work on move ordering before my presentation if possible. That should improve my alpha-beta cutoffs even more and I might be able to get to 8+ ply where the time it takes is playable.

I've still got a few tough ones left, so I know I'll continue to be busy until the end. My last two challenges lie with generating an opening book and using transposition tables (hash tables) for as much as possible (opening book lookup, 3 fold repetition of position, and time permitting for storing previous results during searches to speed future searches due to "transpositions".

But more on that another time. For now, it's again past time to get to bed. Soon I'll be talking about how it's playing. It's really exciting as I add more to it to see it play a little and make "reasonable" choices. I'm curious how close it is to the level of a non-player. Someone who may know the moves and play infrequently, but doesn't really "know" the game. I'll let you know - I plan to find out soon!

I hope you had a great weekend!

Ed.

PS: As I write this, I just had it make an illegal move though the Arena interface. It's because I made an en-passant capture and it sent my move back to the engine without an "ep" at the end to denote it, so the engine thinks its pawn is still on the d5 square when it was actually captured. So I need to clean that up a little.

Oh well, forward... every forward.

No comments: