We also got the rest of the editing for the Bald Guy Smoking book finished off, and that's to bed now; we just sit back and wait for the copies to appear in the post. It's weird not having to do anything in my "free time" any more.
I started thinking about this go playing program, figuring that I'd start with
Games::Go::Board and go from there. And then when I sat down to code, I couldn't find
Games::Go::Board anywhere on my hard disk. I even tried on CPAN (since I've been caught out several times with a newer version of a module on CPAN than on my hard drive) but it wasn't there either. I must have got fed up with it and deleted it, since I remember that there were a few things wrong with it.
It's weird, but no matter how enthusiastic I am about an idea initially, once I get a setback like that - more precisely, any time I have to redo work I know I've done before - I get really fed up and turned off the idea altogether.
But then I started thinking about it in the bath, and realised that the old
Games::Go::Board code was pretty crap, and I could make a much more flexible system starting with a "generic board" class, a "referee" class to ensure moves are legal, and then additional plugin classes to do things like scoring and analysis. (Props to pdcawley for this idea, which he came up with the first time I explained
Games::Go::Board to him.)
So I'll be working on the
Games::Goban module either tomorrow or Tuesday, with additional modules like
Games::Goban::Rules::Go to come. Then I can work on porting the Yoshikawa go estimator, and then...