Mar 16, 2024
A screenshot of a window showing a board for the game of Diplomacy. There are 7 players: Britain, France, Germany, Austria, Italy, Turkey and Russia. Squares are armies, and rectangles are fleets. There's a cryptic legend on the left showing the color and piece that can be added with a click of the mouse.

permalink

* *
Mar 14, 2024
Sokoban is like Tetris, except you don't know which way is "down". And the "ground" is not flat; the contour lines are seldom straight.

The more challenging puzzles often cause me to rewire my sense of gravity halfway through.

permalink

* *
Mar 13, 2024
Improving the UX of Sokoban on a touchscreen using a simple solver.

Tap on an empty tile to move the player there -- if possible! -- without disturbing any crates.

Tap on a crate and then an empty tile to move the crate there -- again, if possible! -- without disturbing any _other_ crates.

All integrated with the infinite undo.

Now I can spend less time juggling arrow buttons on a touchscreen and more time thinking about the puzzle itself: which crate to move next, and where to put it.

permalink

* *
Mar 12, 2024
I'm up to level 56. I think 42 was the most satisfying/memorable.

Screenshot of a level of Sokoban solved

A little thing like an 'edit' button introduces cascading issues:

  • LÖVE (in combination with mobile restrictions) won't let me modify code files in place. I have to overlay my changes in a new location.
  • But now I can't pick up any upgrades to my app. Upgrades modify code files in place, but any overlay persists (otherwise you'd completely lose your changes after upgrading).
  • But hey I have a programmable editor here! I'll just create a new file called 'scratch' with a one-liner to blow away the overlay. (With my app user's hat on, I know in this case my changes are minor in a way that I don't with my app developer's hat on.)
  • (A few hours later.) Wait, now none of my changes are having any effect. And they're completely blown away when I go back to the code.
  • :face_palm: Oh it's that 'scratch' file still hanging around. So it needs to be a 2-liner. I have to make any changes I want to the file system -- and then delete 'scratch' to make this a one-time operation.
  • I could try to create a screen of helpers for this, along with a comment that says, "insert file system operations here" after which is a delete of 'scratch'.

In this way I find myself playing meta-Sokoban.. :eyeroll:

Tl;dr - the 'edit' button isn't really usable yet.

I really don't want to go down the road of building a compare and merge flow :eyeroll:

permalink

* *
Mar 11, 2024
Ok, this Sokoban puzzle seems playable now.

Still no scoring or really persistence of any kind. Just one step of undo (easy to extend if needed).

Credit again to lcamtuf for the sprites and for curating classic puzzles from the past.

Detail on a simple Sokoban level to highlight the individual sprites. A Sokoban puzzle shaped like a horse. A Sokoban puzzle shaped like a butterfly. A Sokoban puzzle shaped like a heart.

permalink

* *
Mar 5, 2024
I just opened a terminal, did a double-take and knew instantly there was a leap year bug in code I wrote almost 25 years ago.

Somehow I didn't run into it the last 5 times it could have happened.

permalink

* *
Mar 2, 2024
This free, open source puzzle game is so fun.

permalink

* *
Feb 26, 2024
From Cristóbal Sciutto, self-contained HTML page that can write to itself

Like Tiddlywiki, but just view source on this beauty: cristobal.space/note

Thanks Gordon Brander

permalink

* *
Feb 23, 2024
A quick and dirty cross-platform charting "library" in 200 lines that can crappily plot half the different kinds of charts out there on your computer or phone. And you can do surgery to it right on your phone.

I think I would never have gotten around to publishing this one if I'd known how much work proof-reading it was going to be.

Screenshot of Lua Carousel showing a two overlaid scatterplots, one in blue and one in red. Screenshot of Lua Carousel plotting two time sequences of data using lines. Screenshot of Lua Carousel plotting a data set using ellipses of various positions and major/minor diameters. Screenshot of Lua Carousel plotting a bar chart with errorbars.

permalink

* *
Feb 21, 2024
What is best in life?

To reflect at leisure, build when opportunity arises, and hear the appreciation of your peers.

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)