Project Plateau
Project Plateau는 네 개의 유리판과 하나의 살아있는 계곡, 캠프로 돌아가는 길을 의미
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Sudoku in the browser — uniquely-solvable puzzles, notes, hints & leaderboard, vanilla JS, no build step
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A modern, animated Sudoku built with vanilla HTML, CSS and JavaScript — uniquely-solvable puzzles, pencil-mark notes, limited hints and a local leaderboard, bilingual PT/EN.
"SudokuWeb" is a from-scratch browser implementation — no frameworks, no build step, no backend — built around a single guarantee: every generated puzzle has exactly one solution. There's no puzzle database — each game is freshly generated in the browser by filling a full grid and carving it back down while checking uniqueness at every step.
The interface opens with a short animated intro, and is fully bilingual, switching instantly between European Portuguese and English.
localStorage, with a "Continue Game" option from the main menu
SudokuWeb/
├── index.html # Splash, menu, how-to-play, game screen, modals
├── css/
│ ├── style.css # Theme tokens, base, splash, menu, how-to-play, game header
│ └── board.css # Grid, controls, modals, challenges, responsive (loaded after style.css)
├── js/
│ ├── i18n.js # PT/EN strings and language persistence
│ ├── solver.js # Bitmask MRV solution counter and conflict scan
│ ├── techniques.js # Human techniques: singles, pointing/claiming, naked pairs, X-Wing, grading
│ ├── challenge.js # Endless challenge ladder, stars and level picker
│ ├── generator.js # Randomized full-grid fill + hole digging with uniqueness checks
│ ├── engine.js # Board state, dispatch results, undo stack, teaching hints, snapshots
│ ├── sound.js # Web Audio UI sounds and the on/off preference
│ ├── storage.js # Saved game, menu difficulty and leaderboard persistence
│ ├── overlays.js # Splash, modals, toast, win screens and confetti
│ └── ui.js # Rendering, screen navigation, keyboard input, wiring
├── tests/ # Node regression suites (node tests/game.test.js)
├── LICENSE
└── README.md
1. Fill an empty 9x9 grid completely via randomized backtracking
(shuffled digit order at each cell, row/col/box legality check)
2. Dig holes: shuffle cell order, then for each cell —
- tentatively clear it
- re-solve the puzzle with a capped counter (stop early at 2 solutions)
- keep the removal only if the count is still exactly 1
- otherwise put the digit back
stop once the difficulty's target clue count is reached; a dig that
gets stuck above the target is retried (up to 12 times) and the
sparsest puzzle is kept. Removals must also keep the puzzle solvable by
human techniques: singles only at 32+ clues (Easy, Medium), singles +
pointing/claiming/naked pairs at 26-31 (Hard — which is retried until
singles alone are not enough), and all of those plus X-Wing below 26
(expert levels — retried for a puzzle that needs eliminations, and for
one that needs X-Wing within a bounded budget, since those are rare)
3. The uniqueness check is a bitmask MRV (minimum-remaining-values)
backtracker: row/column/box digits live in 9-bit masks and the search
always branches on the emptiest cell first, so even expert grids are
generated in a few milliseconds. Hints never re-solve — they read the
cached solution grid
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗