24-SEP-2024
1932
I’ve got things looking a bit more operational now. I’ve refactored the UI a lot to be more aligned with the tutorial, and I’ve created a skeleton for the datamodel.
I also refactored some of the terminal handling stuff, and chased some bugs in the stockfish wrapper implementation.
I started on a mask.rs which is going to supercede that stockfish module and be able to manage any
STDIO/unix-y process, which should help with future scaling, but it’s tricky and I’m debating
whether I should just bite the tokio bullet or not.
Next step is to improve things by getting state tracking set up on the Hazel side, since engines generally don’t have ways to display their boardstate (stockfish being a notable exception).
I think I do have enough now to write a test that tries to ‘play’ random moves (generated by Hazel) for both sides and tries to see if stockfish and hazel ever disagree (including the PGN used to get there as well).
I did a little coverage testing and I need to get that automated, so somewhere in here there’s going to be some github action setup to do.
I think I’m close to mergable, though the UI is total trash, I’d prefer to keep developing on main, so I’ll probably merge soon, perhaps after taking a detour to chase out that damn en passant bug.
2121
I chased down that en passant bug, I believe it was a bad metadata provided in the unmake call, but
probably I should be calculating the ‘correct’ metadata from the ‘unmade’ moves metadata. The whole
Ply struct is pretty cooked, tbh.
Anyway, back to main I go.