Skip to the content

Suido水道

Turn pipes to connect the pumps and drains, through fixed levels or seeded puzzles.

Suido means water supply in Japanese. About the name

Contents

Reference

Level metadata

import { … } from "@johnmorrisdotca/suido/levels-info";

4.6 kB minified and gzipped, with everything it imports (measured with esbuild)

EVERYTHING ABOUT SUIDO'S LEVELS BUT THE LEVELS: @johnmorrisdotca/suido/levels-info. The sizes and how many levels each has, the blocks, which levels are open, a row read, what a level teaches and how hard it is marked, and the level of the day: all of it read without loading a board, and with no way to load one. /levels is this and the loader that fetches a size's boards, and a bundle that carries the loader carries every size's data with it, so a server that only needs to know how many levels there are, or which block opens next, imports this instead.

Exports

NameKindWhat it is
blockOffunctionThe block a level is in, from 1.
blockRangefunctionA block's first and last level, the last no further than the size has.
blocksInfunctionHow many blocks a size of count levels has.
dailySuidoLevelfunctionThe level of the day at a size: a whole number from 1 to that size's count of levels, or null for a size there are no levels of.
declaredTwistsfunctionThe twists a row declares, in the order the levels teach them.
firstUnsolvedLevelfunctionThe lowest level of a set of count not yet solved, or null when every level of it is.
firstUnsolvedSuidoBigLevelfunctionThe lowest level not yet solved, or null when every level of the set is.
firstUnsolvedSuidoLevelfunctionThe lowest level of a size not yet solved, or null when every level of it is (firstUnsolvedLevel).
isSuidoBigLevelfunctionWhether a number is a level of the big-pieces set.
isSuidoDayfunctionWhether a text is a real date written YYYY-MM-DD: 2026-02-30 is not.
isSuidoLevelfunctionWhether a number is a level this size has.
levelAnswerfunctionA row's answer as a code, the board's own code with every piece facing as the answer has it: what checkSuidoAnswer is given.
levelBoardfunctionThe board a row stands for, or null for a row whose code is not a board.
LevelRowtypeOne level: its board as a code (code.ts), its answer as one digit a cell, and its twists.
levelSolutionfunctionThe pieces of a row's answer, each facing as the answer has it; null for a row that is not a board and its turns.
nextLevelfunctionThe level to open on in a set of count: the first open one not yet solved, or the last open one when every open level is solved.
nextSuidoBigLevelfunctionThe level to open on: the first open one not yet solved.
nextSuidoLevelfunctionThe level of a size to open on (nextLevel).
openLevelsfunctionThe levels that are open of a set of count levels, given the ones solved: the first block of sixteen always, and each block after it once every level of the block before is solved.
openSuidoBigLevelsfunctionHow many levels of the set are open, given the ones solved: the first block of sixteen, and each block after it once the block before is all solved.
openSuidoLevelsfunctionThe levels of a size that are open, given the ones solved (openLevels).
sizeOffunctionThe width and height of a size.
SUIDO_BIG_BLOCKSconstantHow many blocks of sixteen the set has.
SUIDO_BIG_COUNTconstantHow many levels the big-pieces set has: four blocks of sixteen, each level with big pieces in it, on boards of many sizes (bigLevels.ts).
SUIDO_BIG_PIECESconstantThe number of big pieces in each big-piece level, in level order.
SUIDO_BIG_SCORESconstantThe rounded difficulty scores of the big-piece levels, in level order.
SUIDO_BIG_SIZESconstantWHAT IS KNOWN OF EVERY BIG-PIECES LEVEL WITHOUT ITS BOARD: the size of its board, how hard it is across the whole set (1 to 100, bigDifficulty.ts), the twists it has and how many big pieces it has among its ordinary ones, in level order, so a page lists the set and a server names a level's size without loading sixty-four boards.
SUIDO_BIG_TWISTSconstantThe declared twist names of the big-piece levels, in level order.
SUIDO_BLOCKconstantSUIDO'S BLOCKS: its levels come sixteen at a time, as Tsunagi's do.
SUIDO_DAILY_STRIDEconstantEach day moves this many levels along a size's ladder, round to the start when it runs out.
SUIDO_LEVEL_COUNTSconstantHow many levels each size has, read without loading the size: whole blocks of sixteen (levelBlocks.ts).
SUIDO_SIZESconstantThe square sizes, 5×5 to 14×14, then three pipe shapes (long boards, 5×7, 6×10 and 8×14), then the huge boards: 20×20, 28×28 and the long 20×50, which have sixty-four levels each, not two hundred and fifty-six.
suidoBandfunctionWhich third of a size a level sits in: its first third easy, its middle medium, its last hard.
SuidoBandtypeThe third of a size a level sits in.
suidoBigBandfunctionWhich third of the set a level sits in: its first third easy, its middle medium, its last hard.
suidoBigMarksfunctionA level's difficulty as 1 to 5, its score in steps of twenty, or null for a number that is no level.
suidoBigPiecesfunctionHow many big pieces a level has among its ordinary ones, and the share of its board they cover: { count: 3, share: 0.24 } is three 2×2 pieces, twelve cells, on a board of fifty.
suidoBigRolefunctionA level's part in its block's lesson (the 15th level of a block teaches what is new, the 16th tests it), or null for a level that has none.
suidoBigScorefunctionHow hard a level is across the whole set, 1 to 100, or null for a number that is no level.
suidoBigSizefunctionThe size of a level's board, "7x7", or null for a number that is no level.
suidoBigTwistsfunctionThe twists a level has, in the order the levels teach them: big-pieces on every one, and blocks that turn, a second pump, walls, locked pieces or wrap-around edges on some.
suidoDayfunctionThe day a moment falls on, in UTC, or the same day if it is already written as one.
SuidoDaytypeA calendar date, YYYY-MM-DD.
suidoMarksfunctionA level's measured difficulty, 1 (easiest) to 5, or null for a level the marks do not have: read without loading the size's boards.
suidoRolefunctionA level's part in its block's lesson, from the data the level script wrote (marks.data.ts), without its size's boards; null for none.
SuidoSizetypeA size of board, as its code writes it: its width, an x, its height.
turnsOffunctionThe answer to a board as one digit a cell: how many quarter turns clockwise each piece needs, the fewest.
twistRolefunctionA level's part in its block's lesson, or null for a level that has none (1 to 14 of a block, or a 15th or 16th with no twist).
TwistRoletypeWhere a level sits in its block's lesson: its 15th teaches the twist, its 16th tests it.

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/suido 1.7.0.