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.
The battlefield
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.
The challenge
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?
The battle
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!