How about a nice chess game? (between two ZX Spectrums)?
Some vintage chess game programs are usually regarded as software masterpieces since programmers have been able to crank into very small amount of memory the full chess game logic – plus some smart tricks.
Moreover, memory was expensive – back then – so it wasn’t just a matter of the-smaller-the-better: no other choice was available with 4-or 8Kbytes of ROM as a project requirement.
As for home computers, ZX 1K Chess (running on Sinclair ZX81) is one the most renowned tiny chess program that falls in this category.
Meet ChesSkelet, by Alex Garcia, a 2019 code jewel running on the ZX Spectrum that raises up the ante (or down, if you prefer) in term of micro-programming.
Available with full explanations, commented source code, in three versions: a minimal, a middle (full features+minimum graphics) and a full featured one.
They range from 380 to 480 bytes (!): yes, slightly more that a couple of tweets…
Thrilled by this software, I managed a challenge between ChesSkelet and Psion MasterChess, from 1983, both on (virtual) ZX Spectrums.
I used a couple of Speccy emulators running under Windows 10, and each running its own chess program, since that made the task a lot simpler… even though chessboard placement called in for a paper (!) translation table.
Sorry, couldn’t think of a better solution about this!
So I entered manually each and every move on both programs – thus getting them to fight each other.
Well… ChesSkelet has no ambition to threaten any Chess Champion, and I’m no chess master too, so Psion MasterChess was supposed to be winning – easily. Or not?
It took quite a lot to complete a single game.
ChesSkelet crashed several times during games, forcing me to restart/rewrite moves/type them etc.
In the end, MasterChess won (at level 0), but ChesSkelet fought 28 rounds before being defeated.
I guess this is quite a good result: after all, since Psion programmed MasterChess to win, no to teach compact programming!
Here’s the match in its full glory:
1.h4d6 2.Cc3Cd7 3.Cf3f5 4.e3h5 5.Cd4Cc5 6.f4e5 7.fxe5c6 8.Df3Dc7 9.Cxf5a6 10.Ae2a5 11.Ae7 (castling) 12.Cxd6+Dxd6 13.Df7+Rd7 14.exd6Ce6 15.dxe7Cxe7 16.Ac4Rd6 17.Ce4+Rd7 18.Dxe6+Rc7 19.Dd6+Rb6 20.Dc5+Rc7 21.Dd6+Rb6 22.Dc5+Rc7 23.De5+Rb6 24.Dxe7Ta6 25.Dc5+Rc7 26.De5+Rd7 27.Tf7+Rd8 28.Dd4+ (checkmate!)
Kudos to Alex Garcia!