{"_id":"@byteme-tech/life-edu-mini-game","_rev":"3-36dd16aedc7edf37e0da8c973e29b978","name":"@byteme-tech/life-edu-mini-game","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@byteme-tech/life-edu-mini-game","version":"0.1.0","keywords":["react","game","education","mini-game","24-point","life-education"],"author":{"name":"ByteMe"},"license":"MIT","_id":"@byteme-tech/life-edu-mini-game@0.1.0","maintainers":[{"name":"jeansonz","email":"2496478774@qq.com"}],"dist":{"shasum":"6bc3a12199a07f1e195ceca2592717354c0f9e0f","tarball":"https://registry.npmjs.org/@byteme-tech/life-edu-mini-game/-/life-edu-mini-game-0.1.0.tgz","fileCount":8,"integrity":"sha512-HLmakzQPafqT24rtOpK6o11zWmZkanPs8ZXB7AEqc025hqeGg2jA/71dqJG8imPq2kiCKjnObNMplPJP19wbqQ==","signatures":[{"sig":"MEUCIQCj3iZEbS+Y5CXhD4ExB/hzwpwkA9kelE5t9IBzV1t3TwIgVt9Dx1YmAzgw3k4IO5knSD3acR0gxY5/HwYif/br6gQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1595025},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"ced58471eeee437ad621c069d83311db7d8e2e64","scripts":{"dev":"tsup --watch","build":"tsup","example":"vite --config example/vite.config.ts","prepare":"npm run build","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeansonz","email":"2496478774@qq.com"},"_npmVersion":"10.8.2","description":"生命教育小游戏合集","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vite":"^5.4.0","react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.6.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/life-edu-mini-game_0.1.0_1765943491067_0.45032468305054474","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@byteme-tech/life-edu-mini-game","version":"0.1.1","keywords":["react","game","education","mini-game","24-point","life-education"],"author":{"name":"ByteMe"},"license":"MIT","_id":"@byteme-tech/life-edu-mini-game@0.1.1","maintainers":[{"name":"jeansonz","email":"2496478774@qq.com"}],"dist":{"shasum":"39b17bc0959d1aab66211557fce3cf55161f497c","tarball":"https://registry.npmjs.org/@byteme-tech/life-edu-mini-game/-/life-edu-mini-game-0.1.1.tgz","fileCount":8,"integrity":"sha512-+GhVJg0LaWbDlhboRco37sGaxN2jMqxs0Uaz/643CfoUpti+hf7AHpXH75fo8r/z9hmI4EXlarV91tPMwdzdpg==","signatures":[{"sig":"MEUCIQDthMvbos7sT0JD1ZzNA7XeCCIjYI11As0UzfgWZMN1qQIgSEK3CoH4yF8KqZmBtjzakd8r0yWMdPtXJpBa2mKRycM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1596670},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"ced58471eeee437ad621c069d83311db7d8e2e64","scripts":{"dev":"tsup --watch","build":"tsup","example":"vite --config example/vite.config.ts","prepare":"npm run build","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeansonz","email":"2496478774@qq.com"},"_npmVersion":"10.8.2","description":"生命教育小游戏合集","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vite":"^5.4.0","react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.6.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/life-edu-mini-game_0.1.1_1765943912650_0.8915648560916782","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-17T03:51:30.890Z","modified":"2026-07-10T06:36:28.095Z","0.1.0":"2025-12-17T03:51:31.232Z","0.1.1":"2025-12-17T03:58:32.814Z"},"author":{"name":"ByteMe"},"license":"MIT","keywords":["react","game","education","mini-game","24-point","life-education"],"description":"生命教育小游戏合集","maintainers":[{"email":"577031902@qq.com","name":"baimeng2025"},{"email":"2496478774@qq.com","name":"jeansonz"}],"readme":"# @byteme-tech/life-edu-mini-game\n\n> 生命教育小游戏合集 - React 组件库\n\n一套精心设计的教育类小游戏 React 组件，开箱即用，支持现代化 UI 和数据持久化。\n\n## ✨ 特性\n\n- 🎮 **多个游戏**：持续添加更多教育小游戏\n- 🎨 **现代 UI**：清爽的亮色主题，精美的视觉设计\n- 💾 **数据持久化**：自动保存游戏数据到 IndexedDB\n- 📦 **开箱即用**：零配置，导入即可使用\n- 🎯 **TypeScript**：完整的类型支持\n- 📱 **响应式**：适配各种屏幕尺寸\n\n## 🎮 游戏列表\n\n| 游戏 | 组件名 | 说明 | 状态 |\n|------|--------|------|------|\n| 24点游戏 | `Game24Point` | 经典数学益智游戏，用4张扑克牌计算24 | ✅ 已完成 |\n| 更多游戏 | - | 敬请期待... | 🚧 开发中 |\n\n### 24点游戏预览\n\n<img src=\"./screenshots/game24point.png\" alt=\"24点游戏\" width=\"400\" />\n\n## 📦 安装\n\n```bash\n# 使用 npm\nnpm install @byteme-tech/life-edu-mini-game\n\n# 使用 yarn\nyarn add @byteme-tech/life-edu-mini-game\n\n# 使用 pnpm\npnpm add @byteme-tech/life-edu-mini-game\n```\n\n## 🚀 快速开始\n\n### 导入游戏组件\n\n```tsx\nimport { Game24Point } from '@byteme-tech/life-edu-mini-game'\n\nfunction App() {\n  return (\n    <div style={{ padding: 20 }}>\n      <Game24Point />\n    </div>\n  )\n}\n```\n\n### 完整配置示例\n\n```tsx\nimport { Game24Point } from '@byteme-tech/life-edu-mini-game'\n\nfunction App() {\n  return (\n    <Game24Point\n      ensureSolvable={true}\n      onCorrect={(time, expression) => {\n        console.log(`🎉 答对了！用时 ${time} 秒`)\n      }}\n      onSkip={() => {\n        console.log('⏭️ 跳过了这题')\n      }}\n      style={{ maxWidth: 500, margin: '0 auto' }}\n    />\n  )\n}\n```\n\n## 📖 游戏文档\n\n### 🎯 24点游戏 (Game24Point)\n\n经典的数学益智游戏，用4张扑克牌通过加减乘除计算出24。\n\n#### Props\n\n| 属性 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `ensureSolvable` | `boolean` | `true` | 是否确保生成的题目有解 |\n| `onCorrect` | `(time: number, expression: string) => void` | - | 答对时的回调函数 |\n| `onSkip` | `() => void` | - | 跳过时的回调函数 |\n| `style` | `React.CSSProperties` | - | 自定义容器样式 |\n| `className` | `string` | - | 自定义容器类名 |\n\n#### 特性\n- ✅ 智能题目生成（确保有解）\n- ✅ 实时计时\n- ✅ 统计追踪（答对/跳过）\n- ✅ 提示系统\n- ✅ 表达式验证\n- ✅ 数据持久化（IndexedDB）\n\n#### 数据存储\n\n游戏自动保存统计数据到 IndexedDB（答对数、跳过数）。\n\n**存储 API：**\n```typescript\nimport { \n  loadGameData,      // 加载统计数据\n  incrementCorrect,  // 增加答对数\n  incrementSkipped,  // 增加跳过数\n  clearGameData      // 清除所有数据\n} from '@byteme-tech/life-edu-mini-game'\n\n// 读取统计数据\nconst stats = await loadGameData() // { correct: 10, skipped: 3 }\n\n// 清除数据\nawait clearGameData()\n```\n\n**24点算法函数：**\n```tsx\nimport { solve24, hasSolution, getHint } from '@byteme-tech/life-edu-mini-game'\n\n// 求解24点（返回所有可能的解）\nconst solutions = solve24([3, 8, 3, 8])\n\n// 检查是否有解\nhasSolution([1, 1, 1, 1]) // false\n\n// 获取一个提示解\nconst hint = getHint([3, 3, 8, 8])\n```\n\n**独立组件：**\n```tsx\nimport { Card, OperatorButton } from '@byteme-tech/life-edu-mini-game'\n\n// 扑克牌组件\n<Card card={{ value: 7, suit: 'heart' }} onClick={() => {}} />\n\n// 运算符按钮\n<OperatorButton operator=\"+\" onClick={() => {}} />\n```\n\n---\n\n### 🎮 更多游戏\n\n敬请期待更多教育小游戏...\n\n## 🎨 样式定制\n\n所有游戏组件都支持通过 `style` 和 `className` 进行样式定制：\n\n```tsx\n<Game24Point\n  style={{ maxWidth: 600, margin: '0 auto' }}\n  className=\"my-game\"\n/>\n```\n\n## 🎁 完整导出清单\n\n### 游戏组件\n- `Game24Point` - 24点游戏\n\n### 工具组件\n- `Card` - 扑克牌组件\n- `OperatorButton` - 运算符按钮\n\n### 工具函数\n- `solve24` - 求解24点\n- `hasSolution` - 检查是否有解\n- `getHint` - 获取提示\n- `validateExpression` - 验证表达式\n\n### 存储 API\n- `loadGameData` - 加载数据\n- `saveGameData` - 保存数据\n- `incrementCorrect` - 增加答对数\n- `incrementSkipped` - 增加跳过数\n- `clearGameData` - 清除数据\n\n### TypeScript 类型\n- `GameStats`, `Card`, `Game24PointProps` 等\n\n## 🌐 浏览器支持\n\n- Chrome >= 87\n- Firefox >= 78\n- Safari >= 14\n- Edge >= 88\n\n需要支持：\n- ES2020\n- React 18+\n- IndexedDB\n\n## 📝 更新日志\n\n### v0.1.0 (2025-12-08)\n\n**🎮 新增游戏**\n- 24点游戏（Game24Point）\n\n**✨ 功能特性**\n- 智能题目生成\n- 实时计时统计\n- 提示系统\n- IndexedDB 数据持久化\n- 亮色主题 UI\n\n**📦 技术实现**\n- TypeScript 类型支持\n- ESM + CJS 双格式输出\n- React 18+ 支持\n- 完整的 API 文档\n\n## ❓ 常见问题\n\n### 如何安装和使用？\n\n```bash\n# 安装\nnpm install @byteme-tech/life-edu-mini-game\n\n# 使用\nimport { Game24Point } from '@byteme-tech/life-edu-mini-game'\n```\n\n### 如何监听游戏事件？\n\n通过回调函数：\n```tsx\n<Game24Point\n  onCorrect={(time, expression) => console.log('答对了')}\n  onSkip={() => console.log('跳过了')}\n/>\n```\n\n### 如何清除游戏数据？\n\n```typescript\nimport { clearGameData } from '@byteme-tech/life-edu-mini-game'\nawait clearGameData()\n```\n\n### 支持哪些浏览器？\n\n支持所有现代浏览器（Chrome >= 87, Firefox >= 78, Safari >= 14, Edge >= 88），需要支持 React 18+ 和 IndexedDB。\n\n### 如何添加新游戏？\n\n1. 在 `src/games/` 下创建新游戏目录\n2. 实现游戏组件\n3. 在 `src/index.ts` 中导出\n4. 更新文档\n\n## 📄 License\n\nMIT © ByteMe\n\n---\n\n## 💡 开发者提示\n\n### 更新版本\n```bash\nnpm update @byteme-tech/life-edu-mini-game\n```\n\n### 安装特定版本\n```bash\nnpm install @byteme-tech/life-edu-mini-game@0.1.0\n```\n\n### 本地开发调试\n```bash\n# 在组件库目录\nnpm link\n\n# 在你的项目目录\nnpm link @byteme-tech/life-edu-mini-game\n```\n\n---\n\n## 📤 发布指南\n\n> 适用于维护者发布新版本到 npm\n\n### 1️⃣ 更新版本号\n\n修改 `package.json` 中的版本号，遵循[语义化版本](https://semver.org/lang/zh-CN/)规范：\n\n```json\n{\n  \"version\": \"0.1.1\"  // 修改版本号\n}\n```\n\n**版本号规则：**\n- **补丁版本（0.1.x）**：修复 bug，向后兼容\n- **次版本（0.x.0）**：新增功能，向后兼容\n- **主版本（x.0.0）**：破坏性更新，不向后兼容\n\n或使用 npm 命令自动更新：\n```bash\nnpm version patch  # 0.1.0 → 0.1.1\nnpm version minor  # 0.1.0 → 0.2.0\nnpm version major  # 0.1.0 → 1.0.0\n```\n\n### 2️⃣ 构建项目\n\n```bash\nnpm run build\n```\n\n确保构建成功，检查 `dist/` 目录生成的文件。\n\n### 3️⃣ 发布到 npm\n\n```bash\nnpm publish --registry=https://registry.npmjs.org/ --access public\n```\n\n**首次发布需要：**\n1. 确保已登录 npm：`npm whoami --registry=https://registry.npmjs.org/`\n2. 确保有 `@byteme-tech` 组织的发布权限\n3. 按提示在浏览器中完成认证\n\n### 4️⃣ 验证发布\n\n```bash\n# 查看包信息\nnpm view @byteme-tech/life-edu-mini-game\n\n# 查看最新版本\nnpm view @byteme-tech/life-edu-mini-game version\n\n# 查看所有版本\nnpm view @byteme-tech/life-edu-mini-game versions\n```\n\n### ⚠️ 注意事项\n\n- ✅ 每次发布前务必更新版本号（npm 不允许覆盖已发布的版本）\n- ✅ 发布前先本地测试，确保功能正常\n- ✅ 建议在发布前提交 git 并打 tag：`git tag v0.1.1 && git push --tags`\n- ✅ 发布后无法删除，只能废弃：`npm deprecate @byteme-tech/life-edu-mini-game@0.1.0 \"版本废弃\"`\n","readmeFilename":"README.md"}