Tscp. Full ZX-81 Chess in 1K. Power laws in chess. Bernd Blasius and Ralf Tönjes Finding power laws has now become de rigueur when analyzing popularity distributions. Long tails have been reported for the frequency of word usage in many languages [ 2 ], the number of citations of scientific papers [ 3 ], the number of visits (hits) to individual websites in a given time interval [ 4 ], and many more. In all these cases (including this new one related to chess) the exponent of the distribution is close to . That is, the number of entries (chess openings, words, papers, or websites) with popularity approximately scales as . The semi-universal value of this exponent was first noticed by Zipf [ 2 ] when he saw the same statistics apply to such different objects as words ranked by their popularity and cities ranked by their population. Many scientists proposed simple (and not so simple) models aimed at explaining the origins of this scaling. Blasius and Tönjes offer no explanation for this empirical observation.
References B. G. Micro-Max. Micro-Max, a 133-line Chess Source My original aim was to write a chess program smaller than 1024 characters.
I could not do it, so far. Even when I dropped the nitty gritty details of the FIDE rules, like castling and en-passant capture, I could not get the size much below 1200 characters. So I shifted my aim somewhat, and wrote something less minimalistic in up to 2000 characters of source-code. This gave me enough space to implement a (hash) transposition table, checking of the legality of the input moves, and full FIDE rules. (For real purists: a close-to-minimal version that does understand full FIDE rules including under-promotion can be found here. As far as I am aware, this still makes micro-Max the smallest C Chess program in existence. On these pages various aspects of micro-Max are described: An overview of the meaning of all variables in the program can be found here.
Downloading If you want to try micro-Max on your PC, you can copy-paste the source and compile it yourself. Toledo Nanochess and Toledo Picochess. I've improved the Toledo Chess 1 engine to squeeze out every character possible, this reduced version was used as the basis for Toledo Chess 2 , a chess program with graphical interface that can be printed on a single sheet of paper!.
This latter engine brought two branches, one devoted to create the most small chess program possible without en passant, castling and promotion only to queen, this is Toledo Picochess. The other branch objective was to create the most small full-chess program with an enhanced evaluation function, this is Toledo Nanochess. With only 1257 non-blank characters, Toledo Nanochess is the current world's smallest chess program in C language, at this date (Feb/13/2009) I'm not aware of smaller programs with this playing-strength. The closest competitor is H.G. Muller with Micromax v1.6 in 1433 non-blank characters. How to compile it First, download the source code from here , you can also download previous versions: Rev. Hardware store chessmen. Bidding chess. 7 Deadly Chess Mistakes Every Novice Player Makes. Thinking Machine 4: Play the Game.
Drawing Chess Positions. In a recent article Mark Dominus describes how he grew frustrated with his graphical editor and wrote a script to draw connectors: I haven’t tried running the software, which, Dominus admits, isn’t his most polished.
What interests me is: the way he devises a mini-language for describing these connectors, then combines hand-built and standard tools to produce the required result; and how quickly he ditches the Gimp and settles on this approach. Clearly he’s done this sort of thing before. Recently I wrote about a rather easier graphics problem, of drawing chessboards.
My real mission, though, was to promote scripted graphics. This article tackles that follow-on problem. That said, the rest of this article follows on from its predecessor. Program Input Things I learned while writing this article: Forsyth-Edwards Notation (FEN) is a standard way to record a chess position. Mark Dominus invented his own input notation. From Wikipedia: So, for example, we record the start position: