Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | /**
* "Find the Number" game definition.
*
* The voice agent picks a target number and the child navigates the
* number line to find it. The agent gives verbal clues based on
* proximity zone updates sent by the visual layer.
*/
import type { GameDefinition, GameStartResult } from '../gameRegistry'
export const findNumberGame: GameDefinition = {
id: 'find_number',
category: 'guessing',
name: 'Find the Number',
description:
'Challenge the child to find a mystery number on the number line. ' +
'Great for building number sense — "I\'m thinking of a number between 20 and 30, and it\'s prime..."',
agentRules:
'RULES: ' +
'1) Say "higher numbers" or "lower numbers" for direction — NEVER say "left" or "right" (children confuse screen directions). ' +
'2) Instead of saying "zoom in", hint at the number\'s precision — e.g. "it has a decimal" or "think about what\'s between 3 and 4." ' +
'3) Give neighborhood hints: "it\'s between 20 and 30", "near a multiple of 5", "close to a number you already know." ' +
"You will receive proximity updates with the child's visible range and distance.",
needsProximityUpdates: true,
onStart(params: Record<string, unknown>): GameStartResult {
const target = Number(params.target)
if (!isFinite(target)) {
throw new Error('Invalid target number')
}
return {
agentMessage:
`Find-the-number game started! Target: ${target}. ` +
'The child CANNOT see the target — they only see "Find the mystery number!" ' +
"Give them verbal clues about the number's neighborhood and properties. " +
'RULES: ' +
'1) Say "higher numbers" or "lower numbers" for direction — NEVER say "left" or "right" (children confuse screen directions). ' +
'2) Instead of saying "zoom in", hint at the number\'s precision — e.g. "it has a decimal" or "think about what\'s between 3 and 4." ' +
'3) Give neighborhood hints: "it\'s between 20 and 30", "near a multiple of 5", "close to a number you already know." ' +
"You will receive proximity updates with the child's visible range and distance.",
}
},
}
|