Move generation advice

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Move generation advice

Post by RedBedHed »

Hi! My name is Ellie. I am an undergrad student at ASU (software engineering). I am currently writing a stockfish and lc0 derived chess engine that I plan to use in a school project. Although my favorite language will always be Java, I decided to use C++ and Python for this project. (I am honestly starting to fall in love with C++. It is such a tsundere lol.)

Anyways, after about three months of reading and pulling my hair out, I finally have a working move generator that produces strictly legal moves! I've tested it on all of the chessprogramming.org positions, and I am so excited to be able to share it with ya'll! I am really hoping to obtain some feedback on how I can improve it. I know that it is a little ugly and still pretty far from optimal in places. (For example, my king moves are currently verified as they are generated.)

Here is the github link:
https://github.com/RedBedHed/Charon

And here are my bulk-counted perft numbers (from the initial position, i5 processor, 1.6 ghz):
perft(1) - 0.000 seconds - 20 nodes visited.
perft(2) - 0.000 seconds - 400 nodes visited.
perft(3) - 0.000 seconds - 8902 nodes visited.
perft(4) - 0.000 seconds - 197281 nodes visited.
perft(5) - 0.031 seconds - 4865609 nodes visited.
perft(6) - 0.656 seconds - 119060324 nodes visited.

I hope everyone is having a great summer! :)
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }