That is a counter-productive approach. If incorrect code would do the job far better than 'correct' code, I would prefer incorrect code any time. Chess engines are full of 'incorrect' code. Zobrist hashing cannot map positions unambiguously upon keys even with 64-bit keys. You cannot search until mate so you use very dubious and often flawed heuristics to calculate a static evaluation. You prune moves that might be good.flok wrote:From a professional software developer's point of view that is horrible
Imho code must be correct.
Wasting time on hash-move validation rather than just accepting that in one out of a billion nodes you get a nonsense score because of a collision (amongst the 100,000 for which you got nonsense scores for completely different reasons) will almost certainly weaken the engine.