2b5649ffa5f971744913bb9bd0635b4ba531d1c0
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2b5649ffa5 |
A way back out, and the tags a crawler reads
Two things a game served from a subdirectory of somebody's site ought to have and this did not: a way back up to the site, and enough in its head for that relationship to be legible to something that is not a person. The way back sits leftmost in the footer, next to SOURCE, because that row is already where the chrome lives and leftmost is where a way back belongs. The arrow is a pseudo-element rather than part of the label so it can be the right arrow for the machine you are looking at: a chevron under the lamp, and the two ASCII characters a Teletype could actually strike on the paper skin. It is an absolute URL rather than "/". This game is served from a subdirectory in production and from the root in development, so the relative answer is right in one of those and points at the game itself in the other. The source link beside it has always worked this way for the same reason. The head gains the usual set -- canonical, Open Graph, Twitter, robots -- plus two pieces of structured data. VideoGame says what this is, that it is free, and that one to four people can play it. BreadcrumbList says the same three steps the footer link offers: this game sits under the games site, which sits under jcoffey.dev. Canonical earns its place rather than being boilerplate. The container serving this falls back to index.html for any path under /wumpus/, which is right for the app and wrong for a crawler -- without it, /wumpus/anything-at-all is a separate indexable page with identical content. The preview image is served by the site rather than carried here. There is no artwork file in this repository and there is not going to be one; a social card is not part of the game, and it sits with the deployment, which is where the canonical URL points anyway. A noscript block describes the game and offers the way onwards, so a reader without scripts and a crawler that does not run them get something better than an empty div. 38 tests. Build clean. |
||
|
|
6485f9b161 |
Hunt the Wumpus, in two skins
A browser recreation of Gregory Yob's 1973 game. The rules are his and are free to use; the sentences he wrote to explain them are not, and none of them are here. Every line this game prints was written for it. NOTICE.md sets out what is ours, what is not, and why -- the same argument the lemonade stand makes about its own text, made before shipping rather than after. Two skins over one game, and the period one is a Teletype rather than a television. Wumpus is six years older than the Atari the lemonade stand runs on. It lived on a timesharing service you telephoned and it printed on paper, which is why the game asks you to remember things: there is no screen to look back at. So 1973 is fanfold and black ink and a print head hammering out one character at a time, and the remaster is the same cave with the lamp on. The rules never differ, and neither does a single word. The cave is proved rather than trusted. The adjacency table is typed out by hand, because a generated dodecahedron comes out with an arbitrary numbering and this is the numbering every listing has used since 1973 -- so a transcript from a magazine still makes sense against it. Typed out means it can be typed wrong, and a wrong table would not crash: it would quietly stop being a dodecahedron while the game still played. cave.test.ts checks degree three, symmetry, connectivity, a diameter of exactly five, and three pentagons through every room. The map is not allowed to know more than the paper. CaveMap draws only from the rooms the hunter has stood in and the warnings those rooms gave, and it marks suspects rather than answers. That guarantee is asserted in the engine rather than in the component, because it is a property of the engine and would still have to hold if the map were thrown away. Drawing a solid flat took two attempts. Rooms 6 to 15 are not two pentagons at different depths, they are one ten-room ring alternating inward and outward wiring, and getting that wrong still draws and still looks cave-shaped. It is much harder to read. The test checks the property that actually matters -- that no tunnel crosses another -- and was confirmed to fail against the bad layout before it was believed. The dial-in is a real Bell 103 call rather than a noise: dial tone at 350 and 440 Hz, Touch-Tone dialling, ringback at 440 and 480, the far modem's 2225 Hz mark tone, then both ends keying at once through a telephone band. The screech everybody remembers is a V.34 handshake from the 1990s and could not have existed here. 38 tests. Typecheck clean. |