Add Lexicube, a word-dice party game with a post-game dictionary - #57
Add Lexicube, a word-dice party game with a post-game dictionary#57abcd-ca wants to merge 14 commits into
Conversation
|
@abcd-ca Great app, would love to play this post merge. Some licensing issues I am concerned about. The DejaVu font licensing looks fine, but the embedded SOWPODS corpus as far as I can see has no authoritative redistribution chain: pf-sowpods only labels the package MIT and provides no license/provenance for the underlying data. If we canreplace it with a clearly licensed word list, or document explicit permission and ship the required notices and dependencies clearly. Also, please raise minimum_cobalt_version to 0.2.4 , since dictionary lookup is unavailable in earlier advertised versions. |
|
Thanks for catching this. You're right that the MIT label on I've also raised |
Sixteen letter dice on a 4x4 board, a three-minute clock, and pause that actually hides the letters. Players find words by eye and write them on paper, as at a physical tray; when the pens go down the app settles the arguments: validity from an embedded SOWPODS list (267,750 words, answered offline), near-miss suggestions for misspellings, and definitions through the runtime's offline dictionary service when the owner has installed dictionaries. No capabilities. Layout tests hold every screen to four panels (Clara BW, Libra Colour, Nia, Sage); the keyboard screen is held to the panels the SDK keyboard itself fits on, which excludes the Nia's 758-pixel width. The word list is the pf-sowpods packaging (MIT) of the SOWPODS list; the dice faces are the tabletop set's letter distribution.
The board is now drawn as one published picture so each die lies rotated the way it landed, letters rasterized from the platform's Atkinson Hyperlegible display face and turned in quarter turns; pausing still hides the board, and a missing typeface falls back to the upright text cells. The mid-game clock is set as display type, and a large spacer keeps a hurried tap at the tray's edge off New game. House scoring in the instructions: letters minus two, Qu counts as two, plurals are their own words.
An app presented on its own had no way off the panel short of the session's idle limit. Exit hands control back to whatever launched the app: the launcher, or the session's end when presented alone.
The launcher's splash carries the summary, but an app this quick to start flashes it past before anybody can read it. The ready screen is the one screen with nothing else to do, so the words live there.
Pausing now shows a letterless twin of the board picture, drawn by the same renderer at the same size, so covering the board never changes its shape and never leaks a letter. The picture's height allowance clears every panel's width, so the board fills the content area. The controls sit at the foot of the panel behind a fill, with a strip of paper under them.
The dice letters are set in DejaVu Serif Bold, embedded with its Bitstream Vera licence, as the plastic dice are printed; the platform face stays as the fallback. The mid-game clock drops from display type to title size, which reads lighter at the same glance. A tappable line under the clock fast-forwards the round to its last two seconds; strip or gate it before the store submission.
The renderer never scales a picture past its own pixels, so the board bitmap grows to 1200 to reach the Libra Colour's panel edge to edge; the grey rides the protocol's chunked path. The covered board's outlines drop to half strength so a glance says out of play, and Paused. is drawn as a picture at the clock's size in a lighter grey, because the text nodes offer no size and tone control together.
The letter-count table said in five rows what the rule says in one sentence, so the rows become examples instead: cat, bird, birds, and quiz, which also show the plural and Qu rules being applied. A new layout test pins the button bar to one position across every phase at the Libra Colour's metrics, which the fill already guaranteed and nothing proved.
Ending early is a real move at the table: everyone is out of words, so why sit out the clock. Same mechanism, a player-facing name, and no longer anything to strip before the store submission.
What the game is, how a table plays it, and where every borrowed piece came from, licences included.
The mid-game board and a checked word with its offline definitions, captured from a Kobo Libra Colour with 'kobo shot --device'.
Rebased onto main, which brought three CI requirements the branch predates, all found by the failing PR runs: - The store manifest now requires a floor no older than the protocol the app is built to speak. The workspace is protocol 11, first supported by Cobalt 0.3.1, so the dictionary-lookup floor of 0.2.4 rises to 0.3.1 (and the lock file catches the crate up to the 0.3.1 workspace version it inherits). - The generated app pages refuse an app with no screenshot metadata, and the home page must shelve every app. Lexicube's board shot from the real panel joins media/site/apps at the site's 1072x1448 (resized from the Libra Colour's 1264x1680), the generator's screenshot map and docs/index.html gain their entries, and the generated page and sitemap line are committed as the check demands. - Adding a workspace member changes Cargo.toml and Cargo.lock, which are release inputs to every app package, so every published app takes a patch bump exactly as the auto-update PR (BandarLabs#80) did for the same reason.
70c857c to
eda34e6
Compare
|
Thanks for the updates. One licensing issue remains: the embedded DejaVu Serif font is distributed without its required license notice. Could you include the notice in the app bundle or use another font? Edit: On rechecking it seems DejaVu is in public domain. Just need to confirm from an official source since a sister font is already present on Kobo. |
A tabletop word-dice game for the panel: sixteen dice land shaken and rotated, a three-minute clock runs, and everyone writes the words they find on their own paper, as at a physical tray. When the pens go down the app settles the arguments — validity from an embedded SOWPODS list (267,750 words, answered offline), near-miss suggestions for misspellings, and definitions through the runtime's offline dictionary service.
Some choices worth a reviewer's glance:
pf-sowpodspackaging (MIT); the underlying SOWPODS compilation's provenance is what it is, so flagging it plainly — happy to swap word lists if you'd rather.cargo test --workspace, clippy pedantic with--all-features, andcargo fmt --checkare all clean. Developed and played daily on a Libra Colour (see #49); the app itself is device-independent.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.