🏠 All Games
JAXILLMIND FAMILY · Game 7 / 12

ODD ONE OUT

Inductive Reasoning L4 · Analyze
Item format modelled on Raven's-style matrices — the five rule types in Carpenter, Just & Shell (1990): constant, progression, figure-addition, distribution-of-three, distribution-of-two.

Four things. One doesn't belong. Can you spot it?

Level 1 Right 0 ❤️❤️❤️

Tap Start to play — spot the answer!

Keep going — this game grows with you

  1. L2 Understandsay what each piece means before you start
  2. L4 Analyzefind the item that does not belong
  3. L5 Evaluatetwo items could each be the odd one — choose the stronger case
  4. L6 Createbuild a set of four where exactly one is odd, and name the rule

Starts at L2 · climbs to L6 — analyze, evaluate and create, not just remember.

TTCF — capability · time bar · failure mode · detection
CapabilityTTCFailure modeDetection
node → complete PWA compile1000msLLM leaked into compile, or transform exceeds 1s (LAW 0 breach)measured compile ms > 1000 → RED, HALT
every challenge + option renders from the deck50msa challenge or option is dropped, or a challenge has not exactly one correct answeroption buttons in DECK == options in node AND every challenge has exactly one correct=true
full offline play after first load50msSW precache drifts from emitted files — app breaks offline while looking deployedtargets ≡ sw.js PRECACHE ≡ files on disk (3-way, exact)
a wrong tap costs a life; three ends the run honestly50mslives never decrement → the game can't be lost, score is meaninglessapp.js decrements lives on a wrong option and calls gameOver when lives reach 0
best streak survives reload50mslocalStorage unavailable (private mode) throws and kills the gameevery localStorage touch in app.js is inside try/catch
correct/wrong tones via WebAudio50msAudioContext constructed before a gesture → browser blocks it, first tone throwsapp.js constructs AudioContext only inside the start-gesture handler, wrapped in try/catch

Source: products/xml/games/odd-one-out.xml v0.6 · engine "choice" · compiled by gen-brain-game.mjs · gated by check-brain-game.mjs