Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kusutori/gobang_react

Repository files navigation

🎮 五子棋游戏

一个功能完备、体验卓越的现代化五子棋游戏,支持多种游戏模式和精美的用户界面。

✨ 主要特性

🎯 游戏模式

  • 本地游戏: 支持双人对战和人机对战
  • 联机对战: 支持局域网内多人实时对战
  • 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: 极速的开发服务器

🎮 游戏规则

  1. 基本规则: 黑棋先行,双方轮流落子
  2. 获胜条件: 横、竖、斜任意方向连成 5 子即获胜
  3. 落子规则: 点击网格线交叉点处落子

🎨 主题介绍

  1. 🪵 经典木纹: 传统的木质棋盘风格
  2. 🌙 现代深色: 现代简约深色主题
  3. 🍃 翡翠绿: 清新的翡翠绿主题
  4. 🌊 海洋蓝: 深邃的海洋蓝主题
  5. 🌅 日落橙: 温暖的日落橙主题
  6. 🔮 紫罗兰: 优雅的紫罗兰主题

⌨️ 快捷键

  • S: 打开设置面板
  • H: 打开快速入门指南
  • F: 切换全屏模式
  • R: 重新开始游戏
  • ESC: 关闭弹窗

🛠️ 安装和运行

前提条件

  • Node.js 18+
  • Bun 1.0+

安装依赖

bun install

启动开发服务器

bun dev

构建生产版本

bun run build

🎯 项目结构

gobang_react/
├── src/
│   ├── components/          # React组件
│   │   ├── GameBoard.tsx   # 游戏棋盘
│   │   ├── SettingsPanel.tsx # 设置面板
│   │   ├── ThemeSelector.tsx # 主题选择器
│   │   └── ...
│   ├── services/           # 业务服务
│   │   ├── ThemeService.ts # 主题管理
│   │   ├── AudioService.ts # 音效管理
│   │   └── SocketService.ts # 网络通信
│   ├── hooks/              # 自定义Hooks
│   ├── store/              # 状态管理
│   └── game/               # 游戏逻辑
├── server/                 # 后端服务
└── ...

🌟 功能亮点

1. 横屏优化布局

  • 左侧控制面板显示游戏信息、主题选择、统计数据
  • 右侧专注于游戏棋盘,获得更好的游戏体验
  • 响应式设计,在移动设备上自动调整为垂直布局

2. 主题系统

  • 6 种精心设计的主题
  • 一键切换,实时预览
  • 主题设置自动保存

3. 音效系统

  • 程序化生成的音效,无需外部文件
  • 背景音乐采用和弦进行,营造轻松氛围
  • 支持音量调节和开关控制

4. 智能 AI

  • 基于 Minimax 算法与 Alpha-Beta 剪枝
  • 多难度级别可选
  • 在 Web Worker 中运行,不阻塞 UI

5. 统计系统

  • 自动记录游戏数据
  • 胜率计算和连胜记录
  • 数据持久化保存

📱 浏览器支持

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进这个项目!

📄 许可证

GPL3 License


享受游戏吧! 🎉

💎 大模型模式使用指南

在大模型模式下,你可以使用支持 OpenAI 兼容接口的大语言模型作为你的对手。

配置步骤

  1. 在游戏设置面板中选择"大模型模式"
  2. 配置模型参数:
    • API 地址: 模型服务的接口地址(如 https://api.openai.com/v1/chat/completions
    • 模型名称: 使用的模型(如 gpt-3.5-turbo
    • API 密钥: 你的 API 访问密钥
    • 温度: 控制模型输出的随机性 (0-2)
    • 最大令牌数: 模型响应的最大长度

使用代理服务器

由于浏览器的跨域安全限制,直接从前端访问 API 可能会失败。本项目提供了内置的代理服务器解决此问题:

  1. 在设置中勾选"使用代理"
  2. 确保代理地址为 http://localhost:3100/api/llm-proxy
  3. 运行以下命令启动代理服务器:
    bun run proxy
    
    或双击项目根目录下的 start-proxy.bat 文件(Windows)

故障排除

如果遇到 404 错误或连接问题:

  1. 确保代理服务器已启动并运行在正确的端口 (3100)
  2. 检查 API 地址和代理地址是否正确配置
  3. 验证 API 密钥是否有效
  4. 检查网络连接和防火墙设置

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors