Search found 781 matches

by Joost Buijs
Thu Feb 21, 2019 3:56 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Move ordering - what's best?
Replies: 12
Views: 501

Re: Move ordering - what's best?

I remember first step to becoming a good tactical player is examining all captures. So only near the leaves you can be sure bad captures are really bad captures for there is no depth left to examine them. If you put bad captures at the end of the move list they get reduced too much by LMR. So it ma...
by Joost Buijs
Thu Feb 21, 2019 10:52 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Move ordering - what's best?
Replies: 12
Views: 501

Re: Move ordering - what's best?

I don't think it will help much when you only order moves at the root. In my case it is entirely different, at the root I only shift the best move up after each iteration, for the remaining part of the tree I order moves in the way I told. What I remember is that doing SEE near the leaves is quite ...
by Joost Buijs
Thu Feb 21, 2019 6:32 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Move ordering - what's best?
Replies: 12
Views: 501

Re: Move ordering - what's best?

I don't think it will help much when you only order moves at the root. In my case it is entirely different, at the root I only shift the best move up after each iteration, for the remaining part of the tree I order moves in the way I told.
by Joost Buijs
Wed Feb 20, 2019 6:36 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Move ordering - what's best?
Replies: 12
Views: 501

Re: Move ordering - what's best?

How important is it to downgrade bad captures? I just use mvv/lva for sorting, but I could use SEE, to get visbility of the bad captures Most captures are bad, like major pieces grabbing protected pawns etc, so downgrading them can help to get your branching factor somewhat lower. I would at least ...
by Joost Buijs
Wed Feb 20, 2019 1:02 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Move ordering - what's best?
Replies: 12
Views: 501

Re: Move ordering - what's best?

In my current program I do: 1. Hash move 2. Winning captures (sorted by SEE) 3. 2 Killers 4. Moves with positive history (sorted by history) 5. Losing captures (sorted by SEE) 6. Moves with negative history (sorted by history) Whether this can be improved? I really don't know. Maybe the losing captu...
by Joost Buijs
Tue Jan 29, 2019 6:24 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Lazy move generation and move ordering
Replies: 7
Views: 717

Re: Lazy move generation and move ordering

I have staged move generation in my program and it doesn't change anything performance wise, maybe it is even a little worse than generating all moves at once (probably because it's quite a lazy implementation by me but anyway). I have exactly the same experience. Staged move generation helps a lit...
by Joost Buijs
Wed Jan 16, 2019 10:38 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Writing bugs
Replies: 66
Views: 4616

Re: Writing bugs

In the past I used a 64 bit Mersenne Twister, because it was rather slow and bulky I replaced it by a 64 bit RNG derived from Marsaglia's KISS. class rnd64_t // 64 bit RNG based on Marsaglia's KISS { private: uint64_t c, x, y, z; public: rnd64_t() { c = 0x01B69AB0AFF2F240; x = 0x112210F4B16C1CB1; y ...
by Joost Buijs
Fri Jan 11, 2019 7:04 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Writing bugs
Replies: 66
Views: 4616

Re: Writing bugs

That is why it is usually better to write everything yourself instead of relying on buggy library implementations.
by Joost Buijs
Mon Jan 07, 2019 7:03 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Writing bugs
Replies: 66
Views: 4616

Re: Writing bugs

I wouldn't say adding unnecessary dummy variables is "the right way to do it". Sometimes adding dummy variables can enhance readability, especially with complex expressions, but that is not the case here, I agree. They won't give overhead, because the compiler optimizes them away anyway. The for (x...