Classic computer games rebuilt around quantum mechanics: superposition, phase flips, entanglement, measurement and tunneling, each turned into a game mechanic. Every game is a static page with no build step: plain HTML, CSS and canvas JavaScript.
Play: https://quantum.fit.vut.cz/quantum-arcade/
| Game | Folder | Quantum twist |
|---|---|---|
| Quak-Man | quak-man/ |
Pac-Man: superposed mirrored copies, Z gates that flip ghosts to edible ` |
| Quetris | quetris/ |
Tetris: pieces superposed over two shapes that collapse on contact, ` |
| MineQueeper | minequeeper/ |
Minesweeper: numbers are expectation values, superposed and entangled mines, anti-mines that count −1, a measurement tool |
| Breaquot | breaquot/ |
Breakout: the ball is a wave packet split by beam splitters and steel barriers it can tunnel through, phase plates, interference, a paddle that measures |
| Hexxaqon | hexxaqon/ |
Hexxagon: pieces split into superpositions that collapse when observed (and capture on landing), interference, entangled clones, Z-shields; vs. an expectation-value AI or a friend |
| Lights Qout | lights-qout/ |
Lights Out logic puzzle: every cell is a qubit in ` |
| Qunairo | qunairo/ |
Takuzu/Binairo logic puzzle that grows from 0/1 bits to the six Bloch-sphere poles: every row and column balanced on every axis, overlap clues ○ ● ◐ between neighbours, honest measurement hints; 18 deduction-checked levels plus random ones |
| Qu2048 | qu2048/ |
2048 with phases: equal tiles with the same phase merge, opposite phases annihilate; Z tiles flip a tile's phase and H tiles split it into ` |
| Quattleship | quattleship/ |
Battleship with the Elitzur–Vaidman bomb tester: Zeno probes of N steps detect ships without touching them with probability cos²ᴺ(π/2N); absorbed photons raise the alarm and the enemy's rate of fire |
Each game's page lists its full rules and controls in a side panel.
Personal records (best scores, times, stars, win/loss tallies) are kept per browser and collected under My records on the arcade page, which can export and import them as a JSON file. Nothing is sent to a server.
Every page is available in English and Czech. Use the CS/EN switch in the top-right corner, or add ?lang=cs / ?lang=en to a link.
python3 -m http.server 8000 # then open http://localhost:8000index.htmlis the arcade landing page.- Each game lives in its own folder (
index.html,style.css,game.js,favicon.svg) and links back to the arcade. i18n.jsis the shared language switch. Each page loads its own Czech dictionary fromi18n.cs.jsfirst:- Static text is marked with
data-i18n="key". - Script text goes through
QA.t('English text', {vars}). QA.onChange(fn)lets a page redraw text it generated itself.
- Static text is marked with
records.jsstores personal records inlocalStorage(QR.set(game, key, value, 'max' | 'min' | 'add')). The arcade page lists them, using theSHOWtable inindex.html.- To add a game, create a new folder, add a card for it to
index.html, include itsi18n.cs.jswith../i18n.jsand../records.js, and add its records toSHOW.
GitHub Pages serves the repository root from master (Settings → Pages → Deploy from a branch, then master and / (root)). .nojekyll turns off Jekyll processing.