一个功能完备、体验卓越的现代化五子棋游戏,支持多种游戏模式和精美的用户界面。
- 本地游戏: 支持双人对战和人机对战
- 联机对战: 支持局域网内多人实时对战
- AI 对手: 多难度级别的智能 AI
- 大模型模式: 支持对接 OpenAI 兼容的大语言模型作为对手
- 6 种精美主题: 经典木纹、现代深色、翡翠绿、海洋蓝、日落橙、紫罗兰
- 横屏优化布局: 充分利用屏幕空间,左侧控制面板 + 右侧游戏区域
- 流畅动画: 使用 PixiJS 和 GSAP 实现丝滑的游戏体验
- 响应式设计: 支持多种屏幕尺寸
- 背景音乐: 轻柔的和弦进行背景音乐
- 游戏音效: 落子、获胜、点击等音效
- 独立控制: 可单独控制背景音乐和音效的开关及音量
- 游戏统计: 自动记录总局数、胜率、连胜记录等
- 数据持久化: 统计数据本地保存,刷新后依然保留
- 全屏模式: 支持全屏游戏体验
- 快速入门: 首次使用会显示详细的游戏指南
- 键盘快捷键: 支持常用操作的快捷键
- 主题切换: 一键切换棋盘主题
- React 19: 现代化的用户界面框架
- TypeScript: 类型安全的开发体验
- PixiJS: 高性能的 WebGL 游戏渲染引擎
- GSAP: 专业级动画库
- TailwindCSS: 实用优先的 CSS 框架
- Zustand: 轻量级状态管理
- Node.js + Express: 稳定的后端服务
- Socket.IO: 实时通信支持
- TypeScript: 全栈类型安全
- Bun: 高性能 JavaScript 运行时
- Socket.IO: WebSocket 实时通信库
- LLM 代理服务器: 解决浏览器跨域问题的本地代理,支持对接各种大语言模型 API
- Bun: 快速的 JavaScript 运行时和包管理器
- Vite: 极速的开发服务器
- 基本规则: 黑棋先行,双方轮流落子
- 获胜条件: 横、竖、斜任意方向连成 5 子即获胜
- 落子规则: 点击网格线交叉点处落子
- 🪵 经典木纹: 传统的木质棋盘风格
- 🌙 现代深色: 现代简约深色主题
- 🍃 翡翠绿: 清新的翡翠绿主题
- 🌊 海洋蓝: 深邃的海洋蓝主题
- 🌅 日落橙: 温暖的日落橙主题
- 🔮 紫罗兰: 优雅的紫罗兰主题
S: 打开设置面板H: 打开快速入门指南F: 切换全屏模式R: 重新开始游戏ESC: 关闭弹窗
- Node.js 18+
- Bun 1.0+
bun installbun devbun run buildgobang_react/
├── src/
│ ├── components/ # React组件
│ │ ├── GameBoard.tsx # 游戏棋盘
│ │ ├── SettingsPanel.tsx # 设置面板
│ │ ├── ThemeSelector.tsx # 主题选择器
│ │ └── ...
│ ├── services/ # 业务服务
│ │ ├── ThemeService.ts # 主题管理
│ │ ├── AudioService.ts # 音效管理
│ │ └── SocketService.ts # 网络通信
│ ├── hooks/ # 自定义Hooks
│ ├── store/ # 状态管理
│ └── game/ # 游戏逻辑
├── server/ # 后端服务
└── ...
- 左侧控制面板显示游戏信息、主题选择、统计数据
- 右侧专注于游戏棋盘,获得更好的游戏体验
- 响应式设计,在移动设备上自动调整为垂直布局
- 6 种精心设计的主题
- 一键切换,实时预览
- 主题设置自动保存
- 程序化生成的音效,无需外部文件
- 背景音乐采用和弦进行,营造轻松氛围
- 支持音量调节和开关控制
- 基于 Minimax 算法与 Alpha-Beta 剪枝
- 多难度级别可选
- 在 Web Worker 中运行,不阻塞 UI
- 自动记录游戏数据
- 胜率计算和连胜记录
- 数据持久化保存
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目!
GPL3 License
享受游戏吧! 🎉
在大模型模式下,你可以使用支持 OpenAI 兼容接口的大语言模型作为你的对手。
- 在游戏设置面板中选择"大模型模式"
- 配置模型参数:
- API 地址: 模型服务的接口地址(如
https://api.openai.com/v1/chat/completions) - 模型名称: 使用的模型(如
gpt-3.5-turbo) - API 密钥: 你的 API 访问密钥
- 温度: 控制模型输出的随机性 (0-2)
- 最大令牌数: 模型响应的最大长度
- API 地址: 模型服务的接口地址(如
由于浏览器的跨域安全限制,直接从前端访问 API 可能会失败。本项目提供了内置的代理服务器解决此问题:
- 在设置中勾选"使用代理"
- 确保代理地址为
http://localhost:3100/api/llm-proxy - 运行以下命令启动代理服务器:
或双击项目根目录下的
bun run proxystart-proxy.bat文件(Windows)
如果遇到 404 错误或连接问题:
- 确保代理服务器已启动并运行在正确的端口 (3100)
- 检查 API 地址和代理地址是否正确配置
- 验证 API 密钥是否有效
- 检查网络连接和防火墙设置