Search found 3476 matches

by Sven
Sat Jul 24, 2021 3:07 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Static exchange evaluation with promotion
Replies: 23
Views: 2658

Re: Static exchange evaluation with promotion

Maybe I used the wrong terminology? The move given for the test is Rxc8, and so I considered 1. Rxc8 Bxc8 2. bxc8=Q. So the rooks are just exchanged (R - R), the bishop is hit, and the pawn stays on the board, and gets promoted to a queen. For me that is R - R + B. The SEE result of the given move ...
by Sven
Sat Jul 24, 2021 3:03 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Static exchange evaluation with promotion
Replies: 23
Views: 2658

Re: Static exchange evaluation with promotion

Usually we only talk about SEE of given moves (usually captures but not necessarily restricted to those). In the given position, the SEE of the move b7xc8Q is the value of R+B-P because Black must capture the promoted queen. The SEE of the move Rxc8 is the value of a rook because Black must not reca...
by Sven
Thu Jul 15, 2021 9:19 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Two fold or three fold repetition?
Replies: 5
Views: 1880

Re: Two fold or three fold repetition?

I count a twofold repetition as a draw if the repeated position belongs to the current search tree, i.e. the distance to it is <= the current distance to the root. Otherwise I would ignore that the engine could find a better move than the one played in the game and could therefore avoid a repetition...
by Sven
Fri Jun 11, 2021 5:12 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Complicating code in C#
Replies: 215
Views: 82701

Re: Complicating code in C#

Overlapping bits are not an issue here. If incremental hash key != hash key from scratch then you do not perform the same set of XOR operations, so you have a bug for sure.
by Sven
Tue Jun 08, 2021 11:33 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Null Move Pruning giving the opposite result
Replies: 18
Views: 5018

Re: Null Move Pruning giving the opposite result

Glad to read that you found something ... I have to admit, though, that I don't really believe that you have actually fixed the null move problem you reported ... My experience simply tells me that it is very unlikely that changing PV collection code or LMR code helps to fix a bug in null move pruni...
by Sven
Mon Jun 07, 2021 8:17 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Null Move Pruning giving the opposite result
Replies: 18
Views: 5018

Re: Null Move Pruning giving the opposite result

any ideas? this is my whole negamax function, thank you byte old_enpassant = board.current_state.enPassant; board.current_state.sideToMove ^= 1; board.current_state.hash ^= BoardHash.sideHash; board.current_state.enPassant = 0; board.current_state.hash ^= BoardHash.EnpassantHashKeys[0]; //... // re...
by Sven
Thu May 20, 2021 6:42 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Being silly with perft and legal move generation
Replies: 4
Views: 2655

Re: Being silly with perft and legal move generation

You will need your new code for positions like the one with Ka5 instead of Ka3 and Rh5 instead of the bishop.
by Sven
Thu May 13, 2021 11:40 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Best bitboard design?
Replies: 27
Views: 8499

Re: Best bitboard design?

I think the number of bitboards you store is not so much a matter of design but an implementation detail which can be hidden to your "application code" (movegen, eval, search) by abstraction.
by Sven
Thu May 13, 2021 10:15 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Progress on Belofte
Replies: 10
Views: 7292

Re: Progress on Belofte

Hi Sven, No mallocs in 2.x. When generating moves, in pseudo-code: // see at end of piece.cpp piece = new bPiece... class - according to piece on board movelist += piece->GenerateMoves(board) delete piece Will be optimized away in next release and I will only instantiate one piece-class per piece a...
by Sven
Wed May 12, 2021 11:29 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Progress on Belofte
Replies: 10
Views: 7292

Re: Progress on Belofte

Which kind of data do you allocate via malloc or the new operator? Is this really necessary? I would suggest to get rid of that as much as possible, at least during search ...