# GuessNoNum **Repository Path**: byack/GuessNoNum ## Basic Information - **Project Name**: GuessNoNum - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎮 GuessNoNum (双人猜数字对战) 这是一个基于 Vue 3 + TypeScript 构建的本地双人猜数字对战游戏。两位玩家轮流设置谜底并猜测对方的数字,先猜中者获胜! ## ✨ 游戏特色 - **👥 双人对战**:支持本地双人轮流操作,体验博弈乐趣。 - **🔒 隐私保护**:特有的"隐私帘"机制,在设置谜底和交换回合时遮挡屏幕,防止偷看。 - **🎨 个性化设置**:玩家可以自定义昵称和 Emoji 头像。 - **🧠 经典规则**:采用经典的 xAyB 猜数字算法(Bulls and Cows)。 - **📱 响应式设计**:完美适配移动端和桌面端体验。 - **🎉 交互反馈**:包含软键盘输入、音效反馈和胜利时的撒花特效。 ## 🕹️ 游戏规则 1. **设置阶段**: - 玩家 A 设置 4 位不重复的秘密数字。 - 玩家 B 设置 4 位不重复的秘密数字。 - *注意:设置过程中请互不偷看!* 2. **对战阶段**: - 玩家轮流猜测对方的数字。 - 系统根据 **xAyB** 规则给出反馈: - **A (Position & Value)**:数字和位置都正确。 - **B (Value only)**:数字正确但位置不对。 - *例如:谜底 `1234`,猜 `1356` -> 结果 `1A1B` (1位置对,3数字对位置不对)。* 3. **获胜条件**: - 最先猜出对方数字(即得到 4A0B)的玩家获胜。 ## 🛠️ 技术栈 - **核心框架**: [Vue 3](https://vuejs.org/) (Script Setup) - **构建工具**: [Vite](https://vitejs.dev/) - **编程语言**: [TypeScript](https://www.typescriptlang.org/) - **状态管理**: [Pinia](https://pinia.vuejs.org/) - **样式框架**: [Tailwind CSS](https://tailwindcss.com/) - **图标库**: [Lucide Vue Next](https://lucide.dev/) - **特效**: [canvas-confetti](https://github.com/catdad/canvas-confetti) ## 🚀 快速开始 ### 环境要求 - Node.js 16+ - npm 或 pnpm / yarn ### 安装依赖 ```bash npm install # 或者 pnpm install ``` ### 启动开发服务器 ```bash npm run dev ``` 访问 `http://localhost:5173` 即可开始游戏。 ### 构建生产版本 ```bash npm run build ``` 构建产物位于 `dist` 目录。 ## 📂 项目结构 ``` src/ ├── assets/ # 静态资源 ├── components/ # UI 组件 │ ├── GameBoard.vue # 游戏主盘面 │ ├── PrivacyCurtain.vue # 隐私遮挡帘 │ ├── ProfileSetup.vue # 玩家信息设置 │ ├── SecretInput.vue # 谜底输入组件 │ └── SoftKeyboard.vue # 软键盘组件 ├── stores/ # Pinia 状态管理 │ └── game.ts # 核心游戏逻辑 ├── utils/ # 工具函数 │ └── audio.ts # 音频控制器 ├── App.vue # 根组件 └── main.ts # 入口文件 ``` ## 📄 License MIT