Repository navigation
v1.5.0
Every level up to 15×15 keeps its number, its board and its answer, and every export, board code and
answer of 1.4.0 reads as it did. New: boards up to 30×30, and portals.
Added
- Boards of 20×20, 25×25 and 30×30, 64 fixed levels each, easiest first, each proved to have exactly
one answer (levels-20,levels-25,levels-30;TSUNAGI_SIZESgains the three). The 15th and 16th
of each block of sixteen teach and test a twist, block by block: walls, wrap, portals, explosions.
Wrap works at the new sizes too. Such boards are not found by luck, so they are made by taking clues
away (reducedCandidate,src/reduce.ts): a filling is cut into short lines and neighbours are joined
while the solver can still prove one answer within a budget of dead ends. The proof of a 30×30 takes
about a second, and making one takes a median 25 to 66 seconds on one core (see the README for the
measurements). - Portals. A portal is a pair of empty cells: a line that goes into one comes out of the other,
going the same way. Both rings are cells the line fills, and each portal is gone through by exactly
one line, once. In the code as a tail word,|portals<a>-<b>,…;LinkLayout.portalPairsand.portals;
portalExit; a step across a portal hasthrough; the solver, the checker (still O(cells)), the
generator,transformed, the difficulty measure, Cheat, explosions and progress codes all know them.
A drag that goes into a ring carries on out of its partner (dragFinger,Reach). Drawn as two rings
alike, in a colour and a Greek letter, with a faint link to the partner on hover or tap; a twist,
"portals", on the ladder. - A second set of levels with portals: 32 at each of 5×5 to 10×10, 12×12 and 15×15, in two blocks
of sixteen (levels-portals,TSUNAGI_PORTAL_SIZES,TSUNAGI_PORTAL_COUNTS,TSUNAGI_PORTAL_SEED).
The loaders, the element andmountTsunagitake aset("classic"or"portals"), and the demo has a
set row. - 82 pairs. The alphabet grows from 16 to 82 letters (
PAIR_LETTERS), and each pair has its own
colour (TSUNAGI_COLOURSgrows to 82, the first 16 as they were). A board of 36 pairs or more has no
waypoints, since the small letters are then stones. - Redrawing one pair.
drawTsunagigroups a board's washes, beads and ghosts by pair, and
drawTsunagiPair(layout, pair, id, options)makes one pair's.mountTsunagipatches only the pairs a
move changed (a board with bridges is redrawn whole). On a phone-sized Chromium with the processor slowed
four times, a move on a full 30×30 board is handled in a median 2.7 ms where redrawing everything took 18.2. - A binary encoding in the solver, for boards of 16×16 and up and for portals
(countSolutionsSat(layout, limit, budget, guide, colours),SatColours), and
countSolutionsOfLevel(layout, answer), which proves a level from its own answer.
Boards up to 15×15 are searched as before, so no existing measurement changes.
Changed
- The README's Limits, API, Making levels and Architecture sections cover the above;
docs/strings-ja.md
has the new words (portal,portals,portalsSays) in English and Japanese.