I used free gemini to code this little chess engine because i don't got enough skill to do that on my own. Then i tried to fix some bugs and correct mistakes the ai made.
The engine runs at the depth of 6 by default, which makes it slow, but somewhat smart at least (plays better than me, im a 1000). It uses piece values and simple piece square tables to evaluate the position, then the minimax or negamax algorhythm to calculate moves. There is a basic alpha-beta pruning system, also a late-move reduction thing, a move ordering feature, a zobrist hash table, and there are opening books.
The engine uses python-chess to process moves, chess.polyglot to read opening books and random to generate zobrist hash tables.
To play the engine or to test it, you should choose the def (play_game() - engine plays for white, play_game_b() - engine plays for black). It accepts moves in a format like "e2e3", "b1c3" or "Nc3", "O-O" or "e1g1", "e8=Q", etc.
Probably there will be no updates on this engine from me. But i will be very happy to see you try and make the engine smarter and quicker!