Wordmul: Wordle for Multics
Rather than doing the kernel work I was planning on this weekend, I spent a few quality hours doing a clone of Wordle in Pascal on Multics. It was both a) surprisingly fun and b) a massive pain in the butt. I learned some valuable things in the process, however. First, I learned that ISO Pascal actually has no primitives for reading of arbitrary files. That strikes me, a self-described Pascal fangirl, as really painful. Thankfully, Multics provides Pascal extensions for runtime access of files, so all was well in the end. I also learned that Multics, while a very clear ancestor of VOS, is less documented, less functional, and less friendly than VOS could dream of being. That being said, by the standards of a late 60s OS - the compare here would be very early TSO or CMS and almost nothing else - it absolutely smells like roses. Its error messages are generally good, it has a real hierarchical FS with stream and record files, and it overall does not suck to use - warts and all. I can see why early UNIX felt like a downgrade. I was vaguely annoyed to find that the Pascal compiler breaks in unintuitive ways with over 1000 locals - something I learned when I tried specifying the valid-words list as a Pascal include file to avoid having to read the documentation on Multics Pascal's file I/O functionality. Other than the file management issue, there were a couple of surprises I encountered. One is that ReadLn on this Pascal compiler actually can't handle strings - which seems like a huge omission. The fix was painless, but it was still unexpected. Anyway, the source is below, as is the words list it consumes. Remember to use the -interactive flag when compiling. Shoot me an email at kira@arcanesciences.com if you give it a try~!
The source file Data fileHere's a sample session:
r 19:45 0.061 0 wordmul Enter a guess: ?weigh w <e> i g h Enter a guess: ?steam s t <e><a><m> Enter a guess: ?marry <m><a> r r y Enter a guess: ?lymph <l> y <m><p> h Enter a guess: ?amend [a][m]<e> n d Enter a guess: ?ample [a][m][p][l][e] Word successfully guessed! Have a nice day~!
To quit before the word is guessed, enter "iquit" as the guess. [] denotes a complete match, <> denotes a partial match. The one major difference from upstream Wordle is that right now Wordmul uses the allowed-solutions list for both solutions and guesses, whereas upstream has a larger list for allowed guesses. It would be trivial to use an expanded guesses list, but transferring large files onto Multics isn't very much fun.
from Hacker News https://ift.tt/Yo0SWmR
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.