An educational phone game from the IDEMS game studio, based on Slant (also known as Gokigen Naname) from Simon Tatham's Portable Puzzle Collection.
Draw a diagonal line in every square so that each numbered point touches exactly that many lines, without the lines forming a closed loop.
- Swipe diagonally across a square to draw its line; tap a line to remove it. Connected lines share a colour.
- Thinking mode for hypotheses: lines are drawn dotted and still count towards the solution; keep or discard them all at once. Solid lines are protected while thinking.
- Sizes 4×4 to 10×10 (or custom up to 15×15), Easy and Hard.
- An interactive tutorial on first launch (and from the ? button).
- Puzzles are generated on the device; the generator is an exact port of
the original, so a game ID such as
8x8dh#123456789012345gives the same puzzle as the original collection.
Built with Angular and Capacitor (Android, and iOS later).
The shared engine and shell come from the games-common-core submodule, so clone with:
git clone --recurse-submodules https://github.com/IDEMSInternational/slant.git
cd slant
npm install(If you already cloned without it: git submodule update --init.)
Run npm install here only, never inside games-common-core.
npm start # dev server at http://localhost:4200
npm test # unit tests, including 680 puzzles checked against the original
npm run build # production web build
npm run apk # Android debug APK -> Slant.apknpm run apk needs JDK 21 (JAVA_HOME) and the Android SDK (ANDROID_HOME,
or android/local.properties with sdk.dir=...).
To use a newer version of the shared code:
git submodule update --remote games-common-core
npm test -- --watch=false
git commit -am "Update games-common-core"src/games/slant/ the game: no Angular except board/
generator/ puzzle generation (random maze, then clues)
solver/ deduction solver (Easy and Hard techniques)
state, moves, input, ... rules and touch handling
tutorial.ts the interactive tutorial's steps
board/ the Angular board component (SVG) and line colours
testing/ reference puzzles recorded from the original
src/app/ wires the game into the shared shell
games-common-core/ shared engine and shell (submodule)
tools/c-reference/ builds the original C generator to record
reference puzzles (needs gcc and a checkout
of the original collection next to this one)
android/ Capacitor's Android project
MIT. Parts are ports of Simon Tatham's Portable Puzzle Collection; see LICENSE.