4 ms·
The rivalry behind the world’s smallest chess program
- pavel_lishin 11y agoI wonder how many bytes would be required to add castling and en passant.
- billforsternz 11y agoYou can't really talk about 492 bytes versus 472 bytes or whatever unless you precisely define the platform the code runs on, and the features required. To my mind castling and enpassant should be required, they are a fundamental part of the game. Also underpromotion and stalemate (if they don't implement castling, I'm guessing they take some other shortcuts). On the other hand, alphanumeric labels for ranks and files just mess up the rudimentary text console display and should be omitted. I would require rejection of all illegal move attempts by the human opponent. But I wouldn't require implementing 3 fold repetition, insufficient material or 50 move draws.
- z0r 11y agoPoudade wrote the 256 byte intro megapole which recently featured at Assembly 2015 (https://www.youtube.com/watch?v=Z8Av7Sc7yGY https://www.youtube.com/watch?v=Z8Av7Sc7yGY). Lot of drama for his online personas beyond this chess competition (which I've just wasted an hour reading about) but unquestionably an excellent size coder
- shard 11y agoThis brings up the question of how chess engine size is related to playing ability. I couldn't find an online comparison, does one exist? As a corollary, does anything similar exist for go? People trying to write the smallest go engine?
- sireat 11y agoThere was a long discussion on the validity of this (here on YC and on reddit) achievement when Poudade's program was first released. I still do not consider it a proper chess program as castling and en passant have been an integral part of chess rules for centuries. So these programs are nice but they are not chess. For this contest to have a relevance, make it simple: program must abide by the chess rules (per say FIDE or USCF) and also support UCI to avoid worrying about interfaces: https://en.wikipedia.org/wiki/Universal_Chess_Interface https://en.wikipedia.org/wiki/Universal_Chess_Interface That would make it a nice level playing field. PS. Of course then some smartass would write: import Crafty import UCI Crafty.Play(UCI.Handle)