Cool, thanks. And right, that's what I noticed in how you implemented it, which also worked quite well for me.mvanthoor wrote: ↑Sat Sep 25, 2021 8:25 pm Nah. Don't bother. It's a very common way to implement MVV-LVA. I've read tutorials that do it in a similar way, MaksimKorzh mentioned it in his video's, BlueFever uses a similar version in VICE; I just adapted it to make the MVV-LVA values smaller, and took care that capturing the king or landing on an empty square would be 0 adjustment; that way, you don't have to check for the king or the empty square, which makes the MVV-LVA routine a tiny bit faster.
Yeah I knowmvanthoor wrote: ↑Sat Sep 25, 2021 8:25 pm Your transposition table looks a lot like mine, minus the generics (so I can use it for perft, and pawn hash data as well). It's inevitable that some code looks like existing code, especially if authors communicate with one another; and there are only so many ways to implement something in a correct and readable way.
"Don't port Rustic to Go" was more of a tongue-in-cheek comment than anything else. I wouldn't mind if someone actually did that.

And I agree. I remember I finished writing the transposition table, and then checked around to make sure I wasn't doing something dumb, and there are only so many ways sometimes to write good code. Particularly I made sure the way I adjusted mate scores made sense, and when I saw the missing minus sign in your code, I decided your implementation was probably just a little different from mine, and so I didn't chalk it up to a bug. Although I'm glad it's been fixed now.
Thanks. I noticed that myself when developing Blunder 1.0.0. Your engine and MinimalChess were the two I found the most reliable, especially at the lower Elo ratings. Many of the other engines I couldn't even get running, or they'd crash halfway thru testing and cause many headaches. So I'm also quite excited to see a new generation of engines.mvanthoor wrote: ↑Sat Sep 25, 2021 8:25 pm PS: I actually installed Go for the first time in my life. Maybe it'll come in handy somewhere in the future. I actually like Blunder and MinimalChess, and some of the other newer engines as well, in which I had a bit of influence in the development such as Loki and Zahak. The newer engines are often easier to compile and use than older engines of the same rating; many of the weaker engines in the CCRL list are old and no longer in development.