====== SecondChess ====== {{secondchess.png}} SecondChess is a didactical chess engine written in C by Emilio Díaz and based on FirstChess code of Pham Hong Nguyen, addressed to programmers who want to learn how a chess engine works. ===== Main Features ===== * One single C code file heavily commented, around 2000 lines * Licensed under GPL: source available at https://github.com/emdio/secondchess * Board representation: one 64 int array for pieces and one 64 int array for colors * Rules Implemented: castle, en passant and promotion * **Robust move generator:** al positions tested so far have been matched by secondchess * **perft** function implemented * Selectable search depth * Simple evaluation: material + piece square tables * Simple Alpha-Beta search + Quiescent * Basic Xboard support ===Lacks=== * No three moves repetition * No 50 moves rule * After every two squares pawn move an en passant square is created, most of the times unnecessarily * No time management ===== Acknowledgments ===== * Pham Hong Nguyen, author of FirstChess * Ron Murawski for his generous help * Pedro Castro, author of Danasah https://sites.google.com/site/danasah/ * Graham Banks and Dusan Stamenkovic for their logos * Tony Mokonen for his windows compilations * Tom Kerrigan for TSCP http://www.tckerrigan.com/Chess/TSCP/ * Bruce Moreland for his site in chess computers * The people that admin and post on talkchess.com: http://talkchess.com * The authors of http://chessprogramming.wikispaces.com/ * Jonatan Pettersson, author of Mediocre Chess http://mediocrechess.blogspot.com.es/ * Many more... ===== Downloads ===== Code available at https://github.com/pocopito/secondchess