Skip to main content

The beginning of code

31 May 2022

night

  • read about chess programming
  • uci protocol
  • numba+python vs c/c++? what about julia?
  • started coding
  • c or c++?
  • c arrays vs stl arrays/vectors for 2d
  • printing unicode pieces or ascii?

Comments

Popular posts from this blog

Making moves with the Negamax algorithm

  10 Sept 2022 after a loooonngg time!!! 4:50 am there's a lot to tell you, but firstly, i'm very happy now because i just teached my ai to capture pieces and guess what, it doesn't just look one move into the future. yes guys, i wrote the negamax algorithm!! it's much more fun to play with it now. but still it has to prioritize other things besides captures, like promotions, checks, pins etc. and obviously, mates! now i'm going to sleep as i got many works to do :(

Faster move generation, Mate in X tests

  24 Dec 2022 1:30 am better  uci  handling, using  istringstream  to parse commands better Mate Score output added Mate in 2, 3, and 4 tests (and they pass! but slow) inlined some functions (maybe faster now?) added Search Type:  Infinite ,  Fixed Depth ,  Time per Move ,  Time per Game ,  Ponder  and  Mate . Not all of them are working yet :') 3 am movelist.reserve(40) : doing this made move generation ~1.5x faster! Now reserving in all vectors. modularized move generation added  get_threats  function

Perft to find bugs in move generation

22 Jun 2022 after 2 am almost completed legal move generation function issue : sometimes switches black and white during random play issue : handling castling rights and enpassant squares while undoing a move 23 Jun 2022 after 12 am bugfix :  san  notation doesn't show promotion added  perft  and  divide  function now we can find corner cases easily! 2 am wasted 1 hour on why I'm getting 1 move less than expected reason: code generates kingside  else  queenside castling moves 🥲 3 am bugfix : now engine checks threatened squares during castling improved  perft  function still a lot of things to do (getting wrong  perft  results)