Write your own Adventure Programs for your Microcomputer: A blast from the past
While doing some training with Tasha Board quite some years ago, we were based in a Youth Club-cum-school wherein we found a hoard of Usborne books from the '80s. Amongst these was one entitled 'Write your own adventure programs for your microcomputer' - ISBN 0-86020-741-2 if you want to try and purchase your own copy from Amazon. Published in the heady days of 1983, this veritable tome includes a guide on writing and planning an adventure game, and code listings for the 48K Spectrum, TRS-80, Apple, Dragon, Vic, ZX81, Oric, Pet, and of course the BBC.
I grew up typing in programs from Amstrad Action into my Amstrad CPC464. I was never interested in playing the games, I enjoyed the programming. I thought about installing a BBC Micro emulator on my PC or Mac and typing it in. Then I had a thought: who the hell would want to do - or read about - that? So I went one better and re-wrote the program in Python. Following on from my previous blog update this is very much not in a pythonic methodology - I have tried to emulate the BASIC methodology as closely as possible as written by the authors. I've had to make some changes, GOTO/GOSUB featured heavily in the original, as did using) (eg) V and V$ as integer and string variables (yes, they're different) and of course 'loading' data into 1-indexed arrays proved loads of fun. But I've tried to stay as closely as possible.
My next trick will be to re-write using (slightly) more modern approaches to make the same game more re-usable, as I would like to get around to writing an adventure game with my daughters. Again, it won't be totally pythonic, because I'm writing for myself not for other people. It will be Olithonic.
The Pythonised version is available in a Juptyter notebook through this Git repository. I am, slowly, working on building up a Jupyter hub host for some students and if I get around to it I will work out a way to host this on their for people to play with and may, or may not, come back and update this post then.