fertig-classic-games/tools
Brian Fertig d27244ac60 Rework Pipe Puzzle to branching network with no-leak win condition
Replace the single Hamiltonian-path model with a spanning-tree + extra-edges
approach that produces boards full of T-pieces, crosses and dead ends. The
win condition is now simply "zero leaks" — every socket matched to a
neighbour that opens back — instead of requiring one continuous path from
faucet to drain.

Key changes:
- Logic: generate puzzles via randomized Kruskal spanning tree plus tunable
  extra edges per difficulty; add bitCount, countLeaks, and derived
  angleFor/canonical rotation table
- Art: new tile textures for stub (dead end), T-piece, and cross;
  tileKeyFor and angleFor now handle all five piece types
- Game: faucet and drain are fixed anchors (not rotatable); removed the
  CONNECTED counter in favour of a simpler LEAKS stat; updated difficulty
  tiers (6×6 through 10×10) with extra-edge counts; improved water
  rendering contrast
- Tests: rewrite verify script for the new generation model (spanning tree,
  connectivity, piece mix, no-leak solution); update smoke test to skip
  anchor tiles
- Tutorial: updated rules, board reading guide, and tips for the branching
  network variant
2026-08-24 21:04:27 -06:00
..
data
…
lib
…
bloxorzMap.js
…
buildCommonWords.js
…
fetchStarControlAssets.js
…
genBloxorz.js
…
genDotLink.js
…
genExcitebikeTracks.js
…
genGooTower.js
…
genJumble.js
…
genKatamino.js
…
genMiniCrossword.js
…
genPeggleLevels.js
…
genPuddingMonsters.js
…
genRushHour.js
…
genSpireClimbCreatures.js
…
genSuperKartTracks.js
…
genTACampaign.js TAL: smooth obstacle collision push + in-place building upgrades (upgradesFrom) 2026-08-16 18:59:30 -06:00
genTetrisAttackPuzzles.js
…
genWolfenstein.js feat(wolfenstein): add enemy vision cone, patrol loop behavior, and weapon sprites 2026-08-21 20:23:02 -06:00
genZuma.js
…
readExcitebikeMaps.js
…
smokePipePuzzle.cjs Rework Pipe Puzzle to branching network with no-leak win condition 2026-08-24 21:04:27 -06:00
verifyAdvanceWars.js
…
verifyBalatro.js
…
verifyBejeweled.js
…
verifyBlockFighter.js
…
verifyBloxorz.js
…
verifyBookwork.js
…
verifyCanasta.js
…
verifyCivilization.js
…
verifyColoradoDefense.js
…
verifyCribbage.js
…
verifyDotLink.js
…
verifyDungeonBoss.js
…
verifyExcitebike.js
…
verifyGinRummy.js
…
verifyGooTower.js
…
verifyJewelQuest.js
…
verifyJumble.js
…
verifyMahjong.js
…
verifyMahjongMatch.js
…
verifyMasterOfVega.js
…
verifyMiniMotorways.js
…
verifyPaiGowPoker.js
…
verifyPeggle.js
…
verifyPipePuzzle.js Rework Pipe Puzzle to branching network with no-leak win condition 2026-08-24 21:04:27 -06:00
verifyPuddingMonsters.js
…
verifyRisk.js
…
verifyRummikub.js
…
verifyRushHour.js
…
verifySWDBG.js
…
verifySlots.js
…
verifySpireClimb.js
…
verifyStarControl.js
…
verifySuperKart.js
…
verifyTempest.js
…
verifyTetrisAttack.js
…
verifyTotalAnnihilation.js TA AI Updates 2026-08-17 21:15:32 -06:00
verifyWolfenstein.js feat(wolfenstein): add fists viewmodel, weapon cycling, ammo drops, and campaign carry-over 2026-08-22 19:07:37 -06:00
verifyZuma.js
…
wolfensteinMap.js feat(wolfenstein): add enemy vision cone, patrol loop behavior, and weapon sprites 2026-08-21 20:23:02 -06:00