Lost Treasure

In 1979, I learned to program in BASIC on a TRS-80 Model I. Sometime in the next year, I read one of my first programming books:

I played Monster Chase and Lost Treasure, modified them extensively, and combined them, so the cave on the island had a monster chase to reach the exit. I recall having problems getting Starship Alpha and Devil’s Dungeon to work, but they joined my software library eventually.

One of my earliest and happiest programming memories was sitting at the dining room table, reading Monster Chase, and writing out a smarter movement system and obstacles in a notebook; at the time the only computers were at school, so I wrote code on paper and typed them in later.

So when I found the book again on archive.org last night, I was very excited, and had to reimplement it. I actually typed this into Pythonista on my phone with the PDF open on an iPad, only moved it to the computer to do some final cleanup and upload it.

The book suggests some modifications, and I did some minor ones: Lowered the movement error to 10%, and risk of shark attack to 10%, rising by 1.5x rather than a flat +50% each time; being anywhere near the island edge killed you too often in the original. I also don’t move you out of the water automatically, that should cost a turn.

I realized in converting it that I hate, hate, hate Row,Column coordinates instead of Cartesian X,Y; tons of mainframe-era computing resources used Row,Column, and you can still see it in some APIs like Curses. Note that the original program is 74 lines, mine’s 214; BASIC is a terrible language, but it’s terse.

I could adapt this into another doorgame for my Mystic Dungeon BBS, but I’m not sure what the multiplayer aspect would be, and it has limited replayability without doing some randomization.

End of 2018

Let’s watch Poseidon — Only available on Netflix until tomorrow! Normally I watch Strange Days, but I feel an upside-down sinking ship is a more accurate metaphor for the year than failed love and revolution and pretty Angela Bassett. Maybe for Chinese New Year (Feb 5), Gabriel Dropout‘s New Year/armageddon episodes.

I don’t go super intimate online, but it’s been a rough year. I’ve lost a friend and two of my last few relatives to cancer, my dad’s had some close calls, and his dog died. Doing any kind of work under the stress load is… not great. And I’m not a good friend or coworker in this state. My new puppy is a terror, both looks and behavior like a jackal puppy, but the one really good thing.

State of software I touched on yesterday. This is the year a new Perilar rises from the ashes, and Learn2JS is moving along nicely, I think that’s going to be a big deal, it’s a sweet environment.

I goofed off yesterday and started writing tbasic, a Tiny BASIC interpreter in C, because that’s a useful thing to do! I’ve done this before, but made a messy parser. The new one is a tiny single file and much cleaner. Might be published tomorrow morning sometime. While nobody needs BASIC, it’s good C programming exercise, and I can link in SDL2 and give it cross-platform graphics and sound, which is actually kinda neat.

“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
—Edsger W. Dijkstra, EWD 498: How do we tell truths that might hurt?
[mdh: In case you can’t read the paper and get the joke, he’s joking. Sort of.]

I got a little writing in on Delvers in Darkness, I’m thinking about more adventures for it, solo gamebooks and Refereed.

Poseidon is really terrible already. Everyone’s a ridiculous caricature. Oh, this is gonna be a good shipwreck.