Up to Main Index Up to Journal for July, 2023
JOURNAL FOR FRIDAY 21ST JULY, 2023
______________________________________________________________________________
SUBJECT: Revisiting the cottage, Mere edition take two
DATE: Fri 21 Jul 20:12:07 BST 2023
This week I’ve been working on user functions for Mere. I’m not going to lie,
adding scoping has been tough. I finally had things kinda working by Thursday.
I really wanted to know if it was now possible to write a larger program using
Mere. Over the years I have written various versions of “The Cottage” in many
different programming languages. The ones on this site include:
[1] March 2018 • Go version
[2] May 2019 • PHP version
[3] May 2019 • JavaScript version
[4] October 2022 • Mere version
The cottage is a simple text adventure ‘toy’ for learning. The Mere version
was terrible. Hard to write, hard to maintain. Basically Mere was not ready
for extensive use and larger programs :( I wondered what would happen if I
tried writing a Mere version now, nine months later? It would definitely be
the biggest Mere program to date and an ideal test bed for the new functions…
After two evenings and a whole load of debugging and hacking on Mere itself:
>mere examples/theCottage.mr
Welcome to the cottage! (Mere edition)
[ Path outside a cottage ]
You are on a path leading north to a small, white cottage.
You see exits: north south west
? exam path
You examine a path.
The path is made of small, neat paving stones.
? get path
You can't take a path!
? inv
You are carrying:
a coin
? exam coin
You examine a coin.
The coin is small and silver.
? drop coin
You drop a coin.
? w
You go west.
[ Front lawn ]
You are standing on a small, neat lawn outside the cottage.
You see a green frog here.
You see a red frog here.
You see exits: north east
? exam frog
You examine a green frog.
This is a small, green frog.
? get frog
You get a green frog.
? w
You cannot go west.
? e
You go east.
[ Path outside a cottage ]
You are on a path leading north to a small, white cottage.
You see a coin here.
You see exits: north south west
? drop frog
You drop a green frog.
? l
[ Path outside a cottage ]
You are on a path leading north to a small, white cottage.
You see a green frog here.
You see a coin here.
You see exits: north south west
? q
Bye bye!
>
This time around it wasn’t such a terrible idea :) The code is… okay-ish? It’s
much better than the previous horrible disaster. Looking at the code I can see
plenty of room for language improvements — especially around the use of IFs
and GOTOs. The cottage does not run in Mere ICE as there is no mechanism to
get input from the player. The current live version of Mere ICE also does not
have user functions yet. However, I’ve included the source here for interested
parties to peruse. Comments and feedback welcome: diddymus@wolfmud.org
theCottage.mr ~11kb
You can click the link above to view in your browser, which might prompt you
to download, or right-click download. It’s probably easier to read the source
code if you download the file, load it into an editor and turn on either C or
BASIC syntax highlighting. Really need to work on a Vim syntax file for Mere.
I was quite encouraged when a work colleague, who does not know Mere, managed
to make sense of the code ;)
Once I have functions completed I’ll be working on getting Mere source code
and binary versions released. Then everybody can have a play.
Now I need to go and organise a mess of Mere code changes into some coherent
Git commits…
--
Diddymus
[1] Welcome to the cottage: /journal/2018/3/17.html
[2] The cottage revisited: /journal/2019/5/9.html
[3] Returning to the cottage…: /journal/2019/5/13.html
[4] The Cottage — Mere edition (terrible idea): /journal/2022/10/3.html
Up to Main Index Up to Journal for July, 2023