Skip to main content

After a long break...

16 Jun 2022

after a long break

(made a snake clone in c++ during this time, check it out!)

  • still coding move generation
  • moved hard-coded numbers to Enums (Direction and Player)
  • refactored sliding moves (Q, B, R)
  • added pgn output (ugly but atleast lichess can parse)
  • now engine generates moves from both sides, yay!
  • separated main.cpp into several header and cpp files

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 :(

Better algorithms and Evaluation function

  11 Oct 2022 long time no see 3 am well, there's a lot of small and big changes. i'll try to explain by checking the diff. AI part: replaced minimax with alpha-beta (similar to negamax version) TODO : implement quiescence search added piece-square table scoring in eval function reduced branching in code move generation part: bugfix : moves like  e1c1  were always interpreted as castling, fixed changed board representation from  string  to  char[64] now king positions are incrementally saved, so faster to find kings several optimizations in move generation general: now engine trys to avoid moves leading to repetitions (but it is not always optimal, so should do something better) fixed several gui bugs in promotion and flipping gui supports (some) premoves fixed some bugs in move hints, still some remaining ig faster makefile BIGGEST UPDATES: uci protocol working! made a  lichess bot  running this engine!

Making engine fast

18 Dec 2022 2:40 am planning to make a major change in the codebase: using  enum  instead of  char  for pieces. This is to elude branching in code? added best move tester solved a small bug in move generation 5 am completed the change to  enum  for pieces maybe the engine is now faster? (because we can now access piece-square tables directly using index without branching)