ultratears
Unofficial native Windows port of Tears of the Kingdom 1.4.3 using static recompilation. Builds locally from the player's own extracted game dump; no game files included.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
正在載入完整 README。 以下為已儲存的摘錄。
A browser-based Battleship game in which you take on Admiral Byte, a sarcastic AI naval commander. It's built with React and Vite and runs entirely in the browser. There's no backend, no account and no tracking.檢視完整 README ↗A browser-based Battleship game in which you take on Admiral Byte, a sarcastic AI naval commander. It's built with React and Vite and runs entirely in the browser. There's no backend, no account and no tracking.
R to rotate, click to place, click a placed ship to pick it back up). Overlapping, out-of-bounds and diagonal placements are rejected, and the live preview shows invalid positions.prefers-reduced-motion support plus a manual Motion toggle (Auto / Full / Reduced).localStorage.| Concern | Choice |
|---|---|
| UI | React 18 (JavaScript) |
| Build / dev server | Vite 5 |
| Styling and animation | Plain CSS (custom properties, keyframes) |
| Tests | Vitest 2, jsdom, Testing Library |
| Linting | ESLint 9 |
| Sound | Web Audio API (synthesized) |
The only runtime dependencies are react and react-dom.
Requires Node.js 18+ (developed on Node 20).
git clone <your-repo-url> operation-deep-blue
cd operation-deep-blue
npm install
npm run dev # http://localhost:5173
Other scripts:
npm test # run the full test suite once
npm run test:watch # watch mode
npm run lint # ESLint
npm run build # production build into dist/
npm run preview # serve the production build locally
Deterministic games: add ?seed=<number> to the URL (for example http://localhost:5173/?seed=777) to get the same fleets and AI choices every time. This is useful for reproducing bugs and for scripted browser tests.
New battle in the header restarts at any time, including mid-turn.
The AI code is in src/engine/ai.js and is deliberately simple and deterministic given a seed. It only sees the results of its own shots (getAIView). It never reads your ship positions.
Every candidate is filtered against cells it has already fired at, so the AI never repeats a shot. The tests check this by playing thousands of shots across many seeds.
npm test
There are 64 tests across 7 files:
board.test.js: placement validation, overlap and bounds rejection, random fleet placement across many seeds, sinking.attack.test.js: hit/miss/sunk resolution, duplicate rejection, immutability.ai.test.js: no repeated shots over full games, neighbour targeting after a hit, line extension, return to hunt after a sink, no access to hidden ships.game.test.js: turn sequencing, win/loss detection, no moves after game over, reset, stale AI moves from a previous game being ignored, manual placement rules.stats.test.js / dialogue.test.js: accuracy, ranks, debrief, no repeated dialogue lines.App.test.jsx (integration): full rendered games, rapid clicking during the AI turn, restarting mid-AI-turn, the game ending during an animation, reduced motion, and that sound is muted by default.The game was also played through in a real browser with Playwright scripts. See BUGFIXES.md.
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗