Sugar Chess is a front end to the gnuchess program. It features varying levels of difficulty, undo, PGN output, customization of graphics, et al.