BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Juegos de lógica como web app instalable que funciona sin conexión: • Star Battle 10×10, 2 estrellas (Fácil, Difícil, Experto). • Sudoku 9×9 (Fácil, Medio, Difícil). El Difícil siempre exige X-Wing o Swordfish. • Smart Dices: 12 piezas que forman 4 caras de dado con sumas por fila y columna (5 niveles). • Smart Circuit: 10 piezas de doble cara que unen los puntos con caminos en un tablero de 8×4 (5 niveles). • Solitario: el clásico de saltar bolas hasta dejar una, en tablero inglés (33) o europeo (37) a elegir en Ajustes.README 전문 보기 ↗
Logic puzzles as an installable web app that works offline, in Spanish and English (the phone's language, or the one chosen in the picker settings). Every game with difficulties uses the same three: Easy, Hard and Expert.
Every board is generated on the device, has a single solution and its level is guaranteed by a logic solver that uses human techniques.
Published with GitHub Pages. On iPhone: open in Safari → Share → "Add to Home Screen".
Progress is stored on the device and kept across updates: when there is a new version, the app says so ("A new version is available · Update") and there is no need to add it to the home screen again (deleting the icon also deletes its progress).
No build step: HTML, CSS and native ES modules. The only dependency is Playwright, for the browser tests (the app doesn't use it).
npm install # Playwright and the pre-commit hook (.githooks)
npm start # local server at http://localhost:8000 (modules don't load over file://)
npm test # engine, rules and infrastructure tests (node:test)
npm run test:e2e # browser tests (Playwright): every game, actions and offline use
npm run check # syntax and imports of all the JS, lint and sw.js up to date
npm run lint # ESLint alone
sw.js is not edited by hand: on commit, the pre-commit hook (scripts/build-sw.mjs) writes the list of files
cached for offline play and a VERSION that is the fingerprint of their content, so every published change reaches
the iPhone on its own. npm run build:sw does the same by hand.
ESLint (eslint.config.js) only looks for errors (unused or undefined names, unreachable code…), not style:
the code is formatted by hand, with the basics in .editorconfig (2 spaces, UTF-8, final newline).
GitHub Actions (.github/workflows/ci.yml) runs check, test and test:e2e on every push and pull request.
Each game's CSS (css/games/<id>.css) loads when the game opens; what several games share goes in
css/components.css. The fonts in fonts/ are a subset of Archivo and Archivo Black with only the characters the
app uses (python3 scripts/build-fonts.py rebuilds them).
All visible text lives in js/i18n/es.js and js/i18n/en.js (same keys, checked by tests/i18n.test.js) and is
used with t(). Code, comments and docs are in English. Game names avoid trademarks; the storageKey of some games
keeps its old name so saved progress isn't lost.
index.html shell: game picker, level menu, shared overlays and icon sprite
css/
tokens.css colours, fonts and sizes (CSS variables)
base.css · components.css · menu.css · play.css · overlays.css · progress.css
games/<id>.css each game's own styles (loaded when it opens)
js/
main.js entry point
config.js shared constants (timings, history, supply)
app/app.js shell: navigation, action dispatch, timer, keyboard
i18n/ languages: es.js and en.js (every text, with the same keys) and t()
core/ generic infrastructure, unaware of any game
game-definition.js contract every game fulfils
game-controller.js base controller (template method): history, win, timer…
store.js persistent state per game (injectable storage)
puzzle-supply.js supply of boards per level, generated in the background
runners.js generation strategies: Web Worker or main thread
generator-worker.js shared worker loop
history.js undo / redo
ui/ reusable views: grid board, header, menus, overlays, dragging…
lib/ pure utilities (bits, grid, random, formatting, DOM)
games/
catalog.js catalogue: picker data + lazy loading of each game
star-battle/ engine, rules, controller, view, templates and definition
sudoku/ likewise
tests/ node:test tests
e2e/ browser tests (Playwright)
scripts/ data, sw.js and font generators; JS check
The 8,980 valid Dice arrangements are precomputed in js/games/dice/engine/arrangements-data.js
(node scripts/build-dice-arrangements.mjs regenerates them).
The 732 valid Circuit arrangements are in js/games/circuit/engine/arrangements-data.js
(node scripts/build-circuit-arrangements.mjs regenerates them).
The 322 Circle solutions (with the ribs in their starting position; the others are the same ones turned) are in
js/games/circle/engine/solutions-data.js, generated by node scripts/build-circle-solutions.mjs.
The 4,524 Hexagon solutions are stored as 377, one per group of solutions that are the same one turned or flipped, in
js/games/hexagon/engine/solutions-data.js (node scripts/build-hexagon-solutions.mjs, under a minute).
The 512 Pentominoes puzzles (rows of pieces, with a checked solution and the difficulty measured by the number of
solutions) are in js/games/pentominoes/engine/sets-data.js, generated by node scripts/build-pentomino-sets.mjs
(about 20 seconds).
The piece games (Dice, Circuit, Circle, Hexagon and Fit) sit together in the picker, in a "Pieces" row that expands
(group in their meta.js).
The Kakuro Expert puzzles (12×12) also come precomputed, in js/games/kakuro/engine/bank-data.js
(node scripts/build-kakuro-bank.mjs, a few minutes); each one comes in 4 versions (transposed and with the numbers
swapped for 10 − n), which keep the single solution.
The Gears puzzles of every level come precomputed in js/games/gears/engine/bank-data.js
(node scripts/build-gears-bank.mjs, about 15 minutes): on the computer the solver proves the single solution without
the phone's step limit, and Expert ends up with fewer numbers. Each one comes in 2 versions (upside down, or turned
half a turn with the crank and the lock swapped).
The Gridlock puzzles of the Hard and Expert levels, which would take several seconds to generate on the spot, are
precomputed in js/games/gridlock/engine/bank-data.js (node scripts/build-gridlock-bank.mjs, see the script). The
other levels and games are generated on the device.
The app icons come from icons/icon.svg: node scripts/make-icons.cjs regenerates the PNGs.
How to add a new game: js/games/README.md.