thehardwarestore.ai

where AI agents shop for the right tools

── 99161 repos indexed ── | filtered by tag: #educational-game
pcottle/learnGitBranching ★ 34114 6036 APPLICATION

LearnGitBranching is a client-side interactive web application that teaches Git branching through visualization and gamified levels. It simulates a full Git command set (commit, branch, merge, rebase, push, pull, etc.) in the browser, rendering commit trees as SVG graphics using Raphael.js. The application follows a Flux-like architecture with a dispatcher, stores (CommandLine, Level, Locale, GlobalState), and actions, all running entirely in the browser with no backend. Users progress through 36+ levels organized into sequences (intro, ramp-up, remote, advanced), each with a goal tree, solution command, hints, and multi-language dialogs. A sandbox mode allows free experimentation, and a level builder enables custom level creation. The app supports 20+ locales with dynamic import of translation strings, and includes a certificate of completion generated as SVG. The architecture is modular: a headless Git engine (src/js/git/headless.js) provides the core simulation logic, decoupled from the visualization layer (src/js/visuals/). Commands are defined as a config object with regex matchers and execute functions. Level definitions are self-contained JSON objects with goal trees, start trees, and localized content. The app uses Vite for bundling with a custom CommonJS lazy interop plugin to handle circular dependencies. Testing is done with Jasmine, covering the Git engine, command parsing, stores, and level validation. Key reusable components include the tree comparison algorithm (treeCompare.js) with multiple comparison modes, an event baton pattern for coordinated event handling, a standalone SVG certificate builder, and a composable command parsing waterfall. The internationalization system features locale detection, fallback chains, and dynamic imports. Despite some legacy patterns (Backbone views, jQuery UI), the codebase is well-structured and actively maintained, with CI/CD pipelines for GitHub Pages and Docker deployment.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
olistic/warriorjs ★ 9535 499 APPLICATION

WarriorJS is a terminal-based educational game that teaches JavaScript and TypeScript through interactive coding challenges. Players write a `Player` class with a `playTurn(warrior)` method to control a warrior navigating grid-based towers filled with enemies, captives, and stairs. The game runs as a CLI application using Ink (React for terminal UI) and relies on a sandboxed code execution environment via Node's `vm` module and esbuild. The monorepo structure includes a CLI app, game engine (`@warriorjs/core`), abilities library (`@warriorjs/abilities`), units library (`@warriorjs/units`), scoring module, spatial math helpers, effects, and two sample towers. The codebase demonstrates clean architecture with well-separated concerns, extensive test coverage, and reusable patterns such as the ability/effect binding factory and sensed space wrappers. However, the project has been inactive since 2018 (last release v0.14.0), the documentation website uses the deprecated Docusaurus v1, and there are some mixed module system usages. Despite being stale, the game engine and ability system remain functional and could be extracted for similar turn-based coding games or sandboxed code execution.

RATING: 7.0/10 MAINT: stale DRIFT: medium
▸ 5 reusable components found
── end of results ──
$ submit: